2012-02-11 69 views
2

我有兩個git工作目錄。有時候會發生,我在錯誤的目錄中進行了一些更改,並且希望現在將這些更改爲另一個目錄。也就是說,我想合併/拉動未提交的從一個地方變到另一個地方。合併未提交的更改

在bzr我會使用合併--uncommitted選項,但我一直無法找到一個git等價物。

回答

4

推動和拉動固有的工作提交,所以我不認爲有任何方法可以做到這一點,具體而言。然後,你可以創建一個臨時分支(git checkout -b tmp),提交它,把它拉到另一個倉庫(git pull $OTHER tmp),然後從該提交中繼續,或者將HEAD恢復到最新的提交,同時保持更改工作樹(git reset HEAD^)並繼續以這種方式處理它們。

編輯:也許更重要的是,但是:你確定你想要兩個單獨的工作目錄嗎?我可以看到它在例如Mercurial或SVN(我沒有使用Bazaar,所以我不能說),但在Git中,您通常會使用分支和窗口。

+0

此方法有效。 – 2012-02-11 15:52:31

+2

是的,我想要兩個目錄。我必須積極在這兩個分支上工作。 Git不關心二進制/構建輸出,因此使用checkout實際上並不完全切換到另一個分支(會使輸出保持不變)。當然,cmake/automake會根據情況重建,但我不想等。 – 2012-02-11 15:58:46

3

低技術的解決方案就是使用git diff

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

你可以在其他的工作目錄git reset