[英]git, change on local branch affects other local branches?
我有一個主分支
現在為了測試其他東西,我做了一個分支 A
我檢出分支 A 修改文件,當我再次檢出 master 時,更改也在那里。
在其他存儲庫上我有正確的行為
未提交的更改將從一個分支移動到另一個分支。 為了將它們分開,您必須在移動到另一個分支之前stash
這些更改。 當您返回到您的分支時,您可以apply
這些更改來檢索它們。
如下圖所示:
>$ git status
On branch branch_1
Your branch is up-to-date with 'origin/branch_1'.
modified: dir/file.rb
>$ git stash
>$ git checkout <branch_2>
>$ git checkout <branch_1> #after finishing your tasks in branch_2 you can go back to branch_1
>$ git stash apply
現在您將恢復之前在 branch_1 中所做的更改
我檢出分支 A 修改文件,當我再次檢出 master 時,更改也在那里。
未提交的更改不屬於任何分支。 它們僅存在於工作樹中(如果添加了它們,則存在於索引中)。
切換分支時最好有一個干凈的工作樹,以避免當工作樹的變化與切換的分支之間的差異發生沖突時出現麻煩。
因為分支A
剛剛創建,您沒有在它上面提交任何內容,也沒有在master
上提交任何內容,所以分支A
指向與master
相同的提交,並且在A
和master
之間切換不需要更改工作樹。 這就是為什么您可以切換分支而不會發生沖突的原因。
為了將您剛剛所做的更改放在一個分支中(假設簽出的分支是A
),您必須將其添加到索引中,然后提交它們:
git add .
git commit
閱讀有關git add
和git commit
更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.