34

私が欲しいもの:

サーバーからのすべてのニュース コミットをすべてのブランチのローカル リポジトリで更新しますが、ブランチはマージしません (履歴行を結合するだけです)。

このコマンドを試しています

git fetch --force --progress --verbose  name@host:/path/to/repository.git 

次のように表示されるため、うまくいくと思いました。

From host:/path/to/repository
  * branch            HEAD       -> FETCH_HEAD

しかし、この出力は何を意味するのでしょうか? ログを見ると、更新されていませんでした。サーバーからクローンを作成すると、すべての新しいコミットがそこにあります。だから...コマンドが機能しません。次に、サーバーには存在するがローカルリポジトリには存在しないブランチを試します

git fetch --force --progress --verbose  name@host:/path/to/repository.git my_branch

結果は次のとおりです。

From host:/path/to/repository
  * branch            my_branch       -> FETCH_HEAD

そして、すべての成功...すべてのブランチがわからず、ブランチが更新された場合でも、この変更を取得してログで確認できます。

それを機能させるためのアイデアはありますか?

4

3 に答える 3

44

フェッチするとリモート ブランチが取得されますが、リモート ブランチからの変更をローカル ブランチにマージして、それらの変更を確認する必要があります。

フェッチした後、これを試してください:

git log origin/yourbranchname | head
git log yourbranchname | head

違いがわかりますか?

今行う:

git checkout origin/yourbranchname -b newbranchname
git log newbranchname

newbranchname にリモートの変更が表示されるはずです。

これらの変更をブランチにマージすることもできます

git checkout yourbranchname
git merge origin/yourbranchname
于 2012-03-23T15:00:04.203 に答える
13

git fetchリモートブランチのローカルコピーに変更をもたらすだけです。リポジトリまたはローカル ブランチを更新する場合は、 の後にfetchを付けるか、ワンショットmergeで使用する必要があります。git pull

素晴らしいSOの答え: https://stackoverflow.com/a/292359/102371

于 2012-03-23T15:00:27.597 に答える