切換分支後,比如說feature2
到feature1
。對於不在feature2
而在feature1
中的每個文件,默認情況下,git將刪除checkout
中feature2
以外的所有文件到分支中。是否可以解開文件而不是刪除文件。是否有可能切換git分支和未跟蹤文件而不是刪除它?
我在分支之間切換。當我在另一個分支時,這些文件正在被刪除。我仍然需要這些文件來運行我的應用程序。我在這兩個分支上都有gitignore這些文件,但是在分支的一邊,我強制跟蹤它們。
切換分支後,比如說feature2
到feature1
。對於不在feature2
而在feature1
中的每個文件,默認情況下,git將刪除checkout
中feature2
以外的所有文件到分支中。是否可以解開文件而不是刪除文件。是否有可能切換git分支和未跟蹤文件而不是刪除它?
我在分支之間切換。當我在另一個分支時,這些文件正在被刪除。我仍然需要這些文件來運行我的應用程序。我在這兩個分支上都有gitignore這些文件,但是在分支的一邊,我強制跟蹤它們。
您可以使用git checkout
稀疏模式拉下變化。
如果有一個或兩個文件,嘗試
git checkout feature2 -- <filenames>
如果有很多很多的文件,嘗試
git checkout feature2 -- .
git checkout feature1 -- .
在文件中的第一拉從特點2到工作目錄,而第二個將全部的特性2放到您的工作目錄中,然後拉特性1回到頂部,有效地合併了兩個分支的內容。
默認情況下,以這種方式簽出的文件將添加到索引中。 (git status
將顯示它們準備提交)。
你應該git reset -- .
來取消它們。
謝謝,按計劃工作。你只是保存我的一天。 :-) – Yeo
您可以通過使用git stash -u
(-u將存儲未跟蹤文件以及)切換分支之前存儲更改。存儲將撤銷所有更改並將其存儲在臨時提交中,以後可以隨時應用。
當你想要的文件再存在,您可以運行git stash pop
'git reset --soft feature1'會起作用嗎?您將不得不使用'checkout -b backup'備份feature2 –