2

git pull origin SomeBranch の使用に問題がありました。競合が発生した場合、競合を解決するために Xcode でファイルを開くことができない場合があります。

間違っているかもしれませんが、読んだところ、git fetch はコードを取得しますが、git pull のようにまだマージしていないと思いました。これは Xcode でどのように機能しますか?

たとえば、Branch1 の 1 台のマシンにいくつかの変更を加えました。

次に、マシン 2 の Branch2 で、Branch1 の変更をフェッチします。

だから私はこれをやった

git fetch origin Branch2

コマンドラインからの私の出力は次のとおりです。

*branch      Branch2     -> FETCH_HEAD

これは何を意味するのでしょうか?変更したファイルのソース ファイルに移動しても、何も変更されていません。

何が起こるかはXcodeで、そのファイルの変更がそのソースファイルに表示され、そのファイルが変更されると思いました。そして、コミットしたときにのみステージング領域に追加されるので、他のすべてのものとマージできます. しかし、多分私はそれを間違って理解しています。考え?ありがとう。

4

3 に答える 3

2

git fetch はコードを取得すると思いましたが、 git pull のようにまだマージしていません。

はい、そうです。git merge作業ディレクトリを更新するのはそのためです...

変更したファイルのソース ファイルに移動しても、何も変更されていません。

git fetch変更を表すオブジェクトを取得しますが、作業ディレクトリは更新しません。それgit mergeがそうです。git pull基本的に a の後に agit fetchが続くことを覚えておいてくださいgit merge

于 2012-08-14T21:51:14.687 に答える
0

fetch は、リモート追跡ブランチを更新するだけです。

これにより、それらの変更をローカルにあるものと統合する前に、サーバーから取り出されたものを調べることができます。

これらの変更をローカル ブランチにマージまたはリベースします (存在する場合)。そうでない場合は、単に

git checkout branch2

もしそうなら、

git merge origin/branch2

また

git rebase origin/branch2

この 2 ステップのプロセスをスキップするには、

git pull origin branch2

これはデフォルトでマージされます。でオーバーライドできます

git pull --rebase origin branch2

プルがマージではなく常にリベースするように構成を変更できます。

于 2012-08-14T21:52:57.763 に答える
0

Git リポジトリの場合、共有リポジトリから変更を更新する前に、行った変更を保存してローカル リポジトリにコミットする必要があります。

https://developer.apple.com/library/ios/recipes/xcode_help-source_control_management/UpdatingorPullingChanges/UpdatingorPullingChanges.html

于 2014-10-16T07:35:29.373 に答える