1. ホーム
  2. git

[解決済み] originからpullするときの "git pull "コマンドの違い?

2023-05-29 04:25:43

質問

これらのコマンドの違いは何ですか?

# 1
git pull
# 2
git pull origin
# 3
git pull origin master
# 4
git pull origin/master
# 5
git pull origin HEAD:master

どのように解決するのですか?

git pull は便利なコマンドで、同時にいろいろなことをすることができます。基本的にそれは単に git fetch で、リモートリポジトリに接続し、新しいコミットを取得します。 git merge (または git rebase ) を実行すると、新しいコミットがローカルブランチに取り込まれます。二つの異なるコマンドが関わっているため git pull の意味は必ずしも明らかではありません。

ローカルブランチにアップストリームを設定することができます。フレッシュクローンの後、ローカルブランチ "master" とリモート "origin" を持ち、master ブランチは上流として "origin/master" を持つことになります。 以下、このような設定を想定しています。(上流の設定を見るには git branch -vv で、あるいは .git/config で確認できます)。

では、質問です。

  1. git pull = git fetch origin + git merge origin/master (または、上流が何であれ)
  2. git pull origin = git pull (originが上流リモートである限り)
  3. git pull origin master = git fetch origin master + git merge FETCH_HEAD
  4. git pull origin/master : "origin/master" というリモートがない限り、無効です。
  5. git pull origin HEAD:master : ローカルのマスターを、オリジンの HEAD が指すものに直接リセットしようとします。(これはやってはいけません)。