開発

来月からチーム開発するのでGitのまとめ

 

 

 

Git Guiクライアント

ユーザが多くて情報が得られやすいのでSourcetreeを選択。

 

Gitまとめ

 

チーム開発しぐさ

VS Codeでコーディングしながら、SoucetreeでGitの操作をする。Gitについてコマンドでも良いがGUIで確認しながらの方が間違いにくい、早い。

  1. originからpullする
    $ git pull origin master
    →conflictしていたらローカルを修正してマージする。
    新人であれば自分のコードより他のメンバーを優先させる形でマージする。
  2. 開発する
  3. ステージングにファイルをあげる
    $ git add <指定ファイル>
  4. コミットする
    $ git commit <指定ファイル>
  5. originからpullする
    $ git pull origin master
  6. オリジンにpushする
    $ git push origin master

ローカルをリモートと同期させるしぐさがチーム開発では大切。

 

開発しているブランチにmasterの最新を取り込む

 

①GitLab上でissueを作成する

#999
Add hoge API

②GitLab上でブランチを作成する

issueの名前に合わせる

594-Add-hoge-API

このブランチで作業する

→ブランチの開発が終わった。

③ローカル作業

作業ブランチにmasterの最新を取り込む

ブランチを切り替え

masterをマージする

これで作業ブランチにmasterの状況がmergeされた。
作業中のファイルはそのままです!

 

 

ブランチの使い分け

  • feature
    開発用ブランチ
  • develop
    表示や動作確認
  • maser
    本番

Gitlab-flowを採用。複数のfeatureブランチで開発して、developにマージリクエストを送る流れ。

 

git revert

resetではなく、revertを利用する。

  • 最新のものに対して消すというコミットを行う
  • リモートにやっても良い

 

厳禁 git reset

  • リモートにあげたものには絶対にresetを行ってはいけない。
    ※ローカルだけにする

 

  • hardは危険。
    working directoryも消してしまう。使ってはいけない。
    working directoryは選択しないほうが良い

コミットログがあれば戻せるが、hardを行ってしまうと戻せなくなる。怖い怖いなのだ。

 

ローカルルールで禁止されているコマンド

  • git rebase
  • git reset
  • git cherry-pick

履歴がわかりづらくなるから利用しない。

 

チーム開発でコンフリクトしたらどうする?

チーム内の権力が重要。自分はどこにいるのか?

  • 自分がメンバーかつ新人
    他のメンバーやリーダーのコミット内容を優先
  • 自分がリーダやレビューする役割
    自分が優先

 

 

 

HEADに戻す

 

 

チェリーピック

他のブランチのコミットをマージしたい

Sourcetreeの場合は右クリックから指定のコミットを取り込む

 

 

branch開発

 

●developブランチ

 

●masterブランチ

 

ローカルのdevelopブランチを削除

通常はこれでOK

 

消せない場合は下記で

 

 

 

※git merge developでのエラー

 

masterにコミットして

 

リモートリポジトリmasterブランチにpushする

 

 

ひやりはっと戻す

ローカルリポジトリをある地点まで戻したい

 


ローカルリポジトリをある地点まで戻し、リモートリポジトリも戻す※劇薬

 

コミットをまとめる

 

 

1つ以上pickを残してまとめたいコミットをsに変える

 

これで何事もなければ、

リモートリポジトリにpushして完了

 

※エラーが出た場合

 

git rebase –continueでコンフリクトしたファイルが見れるので修正する。VS Codeだとここらへんの修正が楽。

それからgit add -AしてリモートにpushでOK

 

なんか操作してミスしてりとかだったらrebaseの作業を破棄することで戻れる

 

 

issue機能

 

issue#<番号>でイッシュー用のブランチを作成し作業する

 

commitする時にissue番号を入れるとリンクが作成される。

issueでcommit番号のハッシュ値を張ることで、リンクが出来る。

masterにも反映させる

 

issue#1ブランチの削除

 

 

untrackedファイルを削除する

リポジトリに管理されていないファイル = 追跡対象外ファイル = untrackedファイル

フレームワークを利用していると自動生成されることがあり、なかなかお世話になるコマンド。

 

追跡対象外のファイルを確認(削除実行はしない)

 

追跡対象外のファイルを削除

 

追跡対象外のファイルとディレクトリを削除

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)