質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

1回答

3941閲覧

git checkout -b と git fetch & git checkout の違い

mi.

総合スコア14

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

1クリップ

投稿2019/02/04 04:15

編集2019/02/04 04:17
git checkout -b hoge origin/hoge

git fetch git checkout hoge

上はリモートにあるブランチhogeをもとにローカルにhogeブランチを新規作成。
下はリモートの情報を更新、ブランチ移動。

こういう風に理解しているのですが、あってますか?

そこで質問なんですが、
リモートにあるが、ローカルにないブランチで作業したいとき、
どちらが良いのでしょうか。
また、どう違うのでしょうか?
(運営上でこういう問題が発生する可能性があるとかそういうのがあれば教えていただけますと幸いです)

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

後者のgit checkout hogeは、「リモートにhogeブランチが存在しローカルに存在しないとき、git checkout -b hoge origin/hogeと同等の操作に変化する」というショートハンドです。
つまり、ローカルに当該ブランチが存在しない状況であれば、前者のcheckoutと後者のcheckoutは「同じコマンド」です。
前者と後者の違いはブランチを作成する前にfetchするかしないかだけです。
リモートを最新にしないで作業を開始するのは相当稀な要件でしか存在しないと思うので、一般的には後者の操作を行います。

また、hogeブランチが既にローカルに存在している場合は当然そのブランチにチェックアウトするだけなので、リモートの最新に追従するならgit mergeを叩いてください。

投稿2019/02/04 04:32

tamoto

総合スコア4103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mi.

2019/02/05 07:00

ありがとうございます! ちなみに、、 git logとかgit reflogに履歴を残しておきたいから `git checkout -b hoge origin/hoge` でやるとかありますか? 上司にこのように打つようにと言われ、なぜだろうと考えたのがきっかけです。 (直接聞けば良いのかもしれないですが…)
tamoto

2019/02/05 07:11

多分どちらでも履歴は残ります。自分は省略できるものは省略しますね。 指示があったのなら、それはちゃんと意図を確認してください。 省略できることを知らないかもしれませんし、ミスを減らすノウハウかもしれませんし、無意味な慣習かもしれません。
mi.

2019/02/08 01:48

そうですね、ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問