1. リポジトリを取ってくる
開発したいプロジェクトのリポジトリをリモートから取ってくる。
git clone [リポジトリURL]
リポジトリURLは
・GitLab:Cloneボタンを押下し、HTTPのURLをコピーして貼り付ける。
・Github:Clone or downloadボタンを押下し、Use HTTPを押下してURLをコピーして貼り付ける。
2. リポジトリのデータの最新の情報を取得する
コードは最新だが、ブランチの情報が入っていないため、
fetchコマンドを使って最新の情報を取得する。
git fetch
3. 作業したい該当のブランチに移動する
既にブランチが作られている場合は以下のコマンドのみでOK。
git checkout [ブランチ名]
まだ作られていない場合は新たに作る必要があるので、
git checkout -b [ブランチ名]
で作った後、checkoutする。
4.コードを書き終えたら編集ファイルをステージングに上げる
編集したファイルをステージングにあげて、コミットしたいファイルとそうでないファイルを分ける。
ステージングにあげたファイルはコミットしたいファイルになる。
編集したファイルの全てをあげる時は。
git add .
編集したファイルの一部をあげる時は、
git status
でファイルパスを確認し、
git add [$filepath]
番外編)
編集を全て取り消したい時は、
git checkout -- .
編集を一部だけ取り消したい場合は、
git checkout [$file_path]
5. ステージングにあげたファイルをコミット
リモートにあげる一つ手前の段階に上げる。
その際にどのように編集したかがわかるようなメッセージが必要なので、
git commit -m "[メッセージ]"
でコミットする。
6. コミットしたファイルをリモートに上げる
リモートにあげる際は、
git push origin [ブランチ名]
で上げることができる。
これで一通りのやりとりは終了。
僕のいるチームはこの後にレビュワーと呼ばれるコードの管理人がいるのでその人のチェックが入る。
修正が必要なら修正。
修正が不要ならこのまま進む。
7. 自分が上げた複数のコミットを1つにまとめる
ファイルの編集→修正→修正...と続いていくと、
複数のコミットが散財してしまうので1つにまとめる。
git rebase -i [自分が担当した一つ前のコミットID]
上記コマンドで今までのコミットがエディタで表示される。
最初のコミットを残して他をfixupにする(fでも可)。
終わったらエディタを保存して終了する。
8. まとめ終わったコミットをpush
git push -f origin feature/branch
自分の他コミットと衝突してしまうため、-fで強制的にpushしてしまう。
※git push -f は他コミットを無視して強制的にpushしてしまうので、
自分の担当以外のコミットを打ち消して上書きしまうので使用するときは最大の注意を払う。
9. developブランチに移る
コミットをdevelopに反映するためにブランチを移動させる。
git checkout develop
10. コミットを反映させる
git cherry-pick [まとめたコミットID]
上記コマンドでdevelopにコミットを反映することができる。
11. 反映させたコミットをpush
git push develop
これで自分の担当した実装をプロジェクトに反映することができる。