2012-02-11 6 views
2

私は2つのgit作業ディレクトリを持っています。時々起こるように、間違ったディレクトリにいくつかの変更を加え、それらを別のディレクトリに移動したいと考えています。つまり、コミットされていない変更を1つの場所から別の場所にマージ/プルしたいとします。コミットされていない変更をプル/マージする

bzrでは--uncommittedオプションを使用してmergeを使用しますが、同等のgitを見つけることができませんでした。

答えて

4

本来、コミットにはプッシュとプルが働くので、具体的にはそれを行う方法はないと思います。

への変更を維持しながら、しかし、あなただけの、一時的なブランチ(git checkout -b tmp)を作成することにコミットし、他のリポジトリにそれを引っ張る(git pull $OTHER tmp)、その後、いずれかの最新にそのコミット、または戻すHEADから続けることができたコミットワーキングツリー(git reset HEAD^)を作成し、その方法で作業してください。

編集:さらに重要なのは、おそらく次の2つの作業ディレクトリが必要ですか?私はそれが例えばMercurialまたはSVN(私はBazaarを使用していないので、それについて話すことはできません)が、Gitでは通常代わりにブランチとスラッシュを使用します。

+0

このアプローチが有効です。 –

+2

はい、私は2つのディレクトリが必要です。私は積極的に両方の支店で働かなければならない。 Gitはバイナリ/ビルド出力には関係しないので、チェックアウトを使用しても実際には他のブランチに完全に切り替わるわけではありません(出力は変更されません)。確かに、cmake/automakeは必要に応じて再構築しますが、私は待っていません。 –

3

ローテクなソリューションをgit diffを使用するだけです:

$ cd wd_1 
$ (cd ../wd_2 ; git diff -p) | patch -p1 

あなたは他の作業ディレクトリでgit resetをすることができます。

関連する問題