3

コードにいくつかの変更を加えました。

  • git add -A
  • git commit -m ".."
  • git push オリジンマスター

! [拒否] マスター -> マスター (非早送り) エラー: 一部の参照を '.....' にプッシュできませんでした 履歴が失われないように、非早送り更新は拒否されました プッシュする前にリモートの変更をマージしてくださいまた。詳細については、「git push --help」の「早送りに関する注意」セクションを参照してください。

  • git fetch オリジンマスター

リモート: オブジェクトのカウント: 42、完了。remote: オブジェクトの圧縮: 100% (26/26)、完了。リモート: 合計 26 (デルタ 17)、再利用 0 (デルタ 0) オブジェクトのアンパック: 100% (26/26)、完了。From …… * ブランチ
マスター -> FETCH_HEAD

  • gitマージマスター

すでに最新です。

  • gitマージオリジン/マスター

すでに最新です。

  • git マージ オリジン/マスター マスター

すでに最新です。ええ!

  • git push オリジンマスター

! [拒否] マスター -> マスター (非早送り) エラー: 一部の参照を '....' にプッシュできませんでした 履歴が失われないように、非早送り更新は拒否されました. 詳細については、「git push --help」の「早送りに関する注意」セクションを参照してください。

だからまた同じ。

どうしたの?git pull では動作しますが、fetch/merge を使用する方が良いと読んだので、何が間違っているのか教えてください。

4

2 に答える 2

4

git pullgit fetchaおよび とまったく同じ結果になりgit mergeます。

git fetch呼び方によって動作が少し異なります。通常は を呼び出すだけgit fetchです。これにより、オリジンからのすべてのリモート ブランチが更新されます。その後、自分のブランチはmasterリモートorigin/masterブランチorigin/masterが.mastermastergit merge origin/master

git fetch origin masterその 1 つのブランチを取得し、FETCH_HEAD という一時的なブランチに保存します。を使用してマージできますgit merge FETCH_HEAD

しかし、おそらく単純なgit pull. ;)

ヒント: を使用git branch -avして、すべてのローカル ブランチとリモート ブランチを表示します。

于 2013-03-14T23:13:14.423 に答える
1

どのブランチをチェックアウトしましたか? git merge origin/master master対象外master:常に現在のブランチにマージします。

于 2013-03-14T23:10:07.077 に答える