Gitは分散型のバージョン管理システムである!……みたいな話を聞いた事はありませんか?
今回の質問はこの「分散型バージョン管理システム」というポイントが重要になってきます。
bash
1$ git branch
2* xxx
3 master
4
5# -aオプションを付与してoriginのブランチも表示
6$ git branch -a
7* xxx
8 master
9 remotes/origin/HEAD -> origin/master
10 remotes/origin/xxx
11 remotes/origin/master
12
手元のブランチ一覧を表示する時、
-a
オプションを追加するとリモートのブランチ名も一緒にずらずらと表示されす。
このorigin/xxx
ってブランチがGitHub上に上がっているブランチです。
(複数remotesを登録しているなら.git/configファイルを開いてoriginが何に紐付いているか確認しても良いと思いますが)
はてさて、このorigin/xxx
は「何時のブランチ」なんだい?
Gitは「分散型のバージョン管理システム」なので、
あなたのパソコンに入っているGitも「俺様が枝分かれしたバージョンシステム様なんだぜ」という訳で独立しているんですね。
なので、今所持しているorigin
のブランチ達を一度捨てて、
GitHubにあるもので再度更新する操作をしなければ最新のブランチには置き換わりません。
bash
1# これを実行することでoriginの全てのブランチを最新の状態にしてくれる
2$ git fetch
3
4# 手元のxxxブランチは最新のものには置き換わってないので更新させる
5$ git checkout xxx
6$ git merge origin/xxx
7
この一連の手順を踏む事で手元のxxx
ブランチを最新の状態に更新することが可能となります。
このgit fetch
→git merge
に慣れてきたら、
これらのコマンドを一括で行うgit pull origin xxx
みたいなコマンドを利用しても良いでしょう。
Gitってこの辺「○○を実現する為の方法は1つではない」という特徴があり非常に複雑です。
私はGitにそこそこ詳しいのですが、
それでも実行するコマンドの流れで想定とは違う方向に動作する可能性はありますので、
「これってfetchからのmergeで良いっすか?」みたいな感じで一言聞くようにしています。
Gitにあまり詳しくないなら尚更!
「すみません、先輩。コマンドの流れを調べたらxxxでいけそうという事がわかったのですが、これで大丈夫ですか?」
こんな感じで確認するようにしてください。
rebase
のような扱いをミスると数時間の作業がぶっ壊れるようなヤバいコマンドもGitにはありますから、
このコマンドが安全か否かも分かってない初心者なら特に先輩を捕まえて質問責めする位で良いです。
teratail越しに教えられるのって、このコマンドは(比較的)安全だよくらいのもんですしね。
そのチーム内の作業に慣れてきたら「いつものでいいですよね?」くらいで良くなるはずです。
最初はコミュニケーションが大変かと思いますが頑張ってください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/22 01:42
2022/01/23 00:33
2022/01/23 03:14