2011-01-09 7 views
0

新しいコミットを直接作成するのではなく、インデックスをリモートで変更する方法はありますか?Gitがインデックスを取得する

理想的には、ローカルの履歴を変更するのではなく、リモートコンテンツを含むパッチを適用するようなものです。

おかげ

答えて

0

git fetchは、リモートから変更をフェッチしますが、あなたのmasterブランチにマージしません。それはリモートトラッキングブランチにあります。手動でマージすることができます。 git pullは、これらの両方の操作を一緒に実行します。

1

次に、遠隔の履歴のどの点からパッチを生成すべきか、遠隔の変更をプルすることが問題になりますか?これはまさにマージが解決しようとする問題です。マージコミットは、これまでのローカルブランチに適用されたリモートバージョンを示します。

git fetchgit merge --no-commitを実行すると、マージは作業領域(およびインデックス)で実行されますがコミットされず、メタデータはコミットすると状態になりますマージコミットとしてマークされます。それはあなたが必要とするものですか?

+0

これはOPが実際に望んでいるものと思われます(インデックス*と*作業ツリーにマージしますが、コミットしません)。 'pull --no-commit'を実行するだけでよいことに注意してください。それは 'merge'に渡されます。 – Cascabel

3

意図している作業フローは不明ですが、現在のブランチやインデックスに影響を与えずにリモート変更を取得できます。

git fetch 

あなたはマージコミットを設定せずに、現在のインデックスに取り込ま変更をマージすることができますが、これは何をしたいために、かなりあいまいな珍しいものです。その後、3つの方向マージのオプションが良いかもしれない場合は、リモートブランチは、現在のHEADの早送りである場合

git read-tree -m HEAD origin/remote-branch 

2つのツリーバージョンがベストです。

git read-tree -m $(git merge-base HEAD origin/remote-branch) HEAD origin/remote-branch 

違いの詳細については、git read-treeのmanページをお読みください。

0

このページにはコメントが残っていますので、正解を忘れています。

git-pull --no-commit [email protected]:username/project.git 
0

this answerをご覧ください。マージのコミットを避けるために構成を調整することができます。

関連する問題