2015-05-28 66 views
1

切換分支後,比如說feature2feature1。對於不在feature2而在feature1中的每個文件,默認情況下,git將刪除checkoutfeature2以外的所有文件到分支中。是否可以解開文件而不是刪除文件。是否有可能切換git分支和未跟蹤文件而不是刪除它?

我在分支之間切換。當我在另一個分支時,這些文件正在被刪除。我仍然需要這些文件來運行我的應用程序。我在這兩個分支上都有gitignore這些文件,但是在分支的一邊,我強制跟蹤它們。

+0

'git reset --soft feature1'會起作用嗎?您將不得不使用'checkout -b backup'備份feature2 –

回答

2

您可以使用git checkout稀疏模式拉下變化。

如果有一個或兩個文件,嘗試

git checkout feature2 -- <filenames> 

如果有很多很多的文件,嘗試

git checkout feature2 -- . 
git checkout feature1 -- . 

在文件中的第一拉從特點2到工作目錄,而第二個將全部特性2放到您的工作目錄中,然後拉特性1回到頂部,有效地合併了兩個分支的內容。

默認情況下,以這種方式簽出的文件將添加到索引中。 (git status將顯示它們準備提交)。

你應該git reset -- .來取消它們。

+0

謝謝,按計劃工作。你只是保存我的一天。 :-) – Yeo

-1

您可以通過使用git stash -u(-u將存儲未跟蹤文件以及)切換分支之前存儲更改。存儲將撤銷所有更改並將其存儲在臨時提交中,以後可以隨時應用。

當你想要的文件再存在,您可以運行git stash pop

相關問題