2011-05-12 98 views
2

嘿,在那裏,我撞我的頭撞牆了一會兒,我試圖用git分支來理解一些東西。Git分支不能從其他分支分離

我有一個存儲庫有兩個分支。分支A和B,我已經在我的分支A(尚未提交)中做了一些修改,我想根據A分支創建一個新的分支C. 要做到這一點,我使用git checkout -b branchC,當我切換到這個分支C,並且我嘗試編輯一個我以前修改過的文件時,新的修改也適用於以前的分支。

我相信這是不正常的,你不同意嗎? 我在做分支系統的問題嗎?

感謝您的幫助。

+1

你是什麼意思的「新修改也適用於以前的分支」?你說你還沒有做出改變,對吧? – 2011-05-12 15:30:03

回答

2

您所做的修改不屬於您正在處理的分支。無論何時切換分支,已修改但尚未提交的文件仍保持已修改但尚未提交的狀態。 這是git中的預期行爲。對於這個問題,任何其他的VCS - 版本控制系統在你告訴它們之前都不會承認對你的工作區的改變。在那之前他們是你的mods,而不是VCS的。

3

在編輯文件時,您並未修改分支。您必須首先提交您的更改,以使它們最終在當前分支上。因此,如果您只是在A和C之間切換,那麼工作樹中的文件仍會列爲已修改。

0

如果您不想因爲某種原因提交更改,您可能需要查看「git stash」命令(「git stash --help」或「man git-stash」)。這可以讓您將修改過的文件「移走」並切換到不同的分支。