チーム開発の時のGitHubでのターミナル操作の流れです。
GitHubに自分の作業したデータを上げたい時
ローカルの作業ブランチから、GitHubのmasterブランチにデータを上げたい時に打つコマンド。
以下全てターミナルに入力。
変更点を確認する
git status
変更点をステージにあげる
git add -A
""の中にコミットメッセージを記述する
git commit -m ""
githubの自分のブランチに上がる
git push origin 自分のブランチ名
GitHubでの作業
プルリクエストを作成をする
必ず一度自分のリモートブランチに上げる
もし自分のリモートブランチにあげずに、直接masterブランチに上げてしまったら、
プルリクエストを送る前に合体されてしまう。必ず自分のリモートブランチに上げよう。
その後プルリクエストを送って、他の人が確認してマージするようにする。
GitHubのmasterブランチのデータを自分のローカルに取ってきたい時
masterのブランチに移動する
git checkout master
GitHubのマスターブランチの情報を自分のmasterブランチに落とす
git pull origin master
作業するブランチに移動する
git checkout 自分のブランチ名
作業するブランチに自分のマスターブランチのデータをマージする
(変更点だけ追加される)
git merge master
必ず自分のmasterブランチにGitHubのデータを落とす
自分のmasterブランチにGitHubのデータを落としたあと、
自分の作業するブランチにマージする。
そうすることで、どこのブランチでコンフリクトが発生したかが分かる。
※商品ブランチ、注文ブランチなど機能ごとにブランチを分けて作業している時、どこのブランチでコンフリクトが起きたのかが分かるので修正しやすい。
自分のブランチに直接pullしたら??
コンフリクトが起きた時に自分が作成したデータを消さないといけなくなるかも。
pullする時は必ずローカルのmasterブランチにしよう。
プルした時にコンフリクトが起きた時
テキストエディタでコンフリクトが起きた箇所を修正する。
その後自分の作業ブランチでaddとコミットをすること
git add -A
git commit -m "コンフリクト解消"
次にpushした時に変更点が反映されてないといけないため
何か間違えて戻りたい時
ローカルリポジトリでのブランチの切り替え、新たに加えられた変更のプル、履歴の書き換え、コミットの履歴を表示する
git reflog
すると下のように表示される。
aefb89f HEAD@{0}: commit: Add a.txt
af3cfdd HEAD@{1}: commit: Add b.txt
d8441e3 HEAD@{2}: commit: Add c.txt
a,b,cのファイルを追加した情報が一回ずつコミットされている。
※qを入力してlogを終了する
1番上に表示されている作業を無かったことにする
git reset --hard HEAD@{1}
これでbを追加した時の状態に戻れる
addやコミットで上げたものを消したいとき
addで上げたものを消す ※マージも無かったことにできる
git reset --hard HEAD^
addで上げたものは消さずに、コミットだけを消す
git reset --soft HEAD^
addで上げたものだけを消す
git reset --hard HEAD
参考にさせて頂きました
https://gist.github.com/kymmt90/9c997726b638b316f9be07aa4e3eea5e
https://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe
https://techacademy.jp/magazine/10264