2016-05-25 63 views
0

我是git的新手,所以我想了解它是如何工作的。我目前有主人簽出。我對主人進行了一些更改,可以說我添加了一個徽標,但尚未推送更改。GIT - 在沒有混合文件的情況下在分支之間切換

然後我切換到另一個分支。在這個分支中,我認爲這將是一個全新的大師結帳,但我看到了我的開發標誌文件。難道這不應該在這裏,因爲它是另一個分支嗎?讓我知道,如果我有這個概念都錯了。

+1

Git將保留任何與您正在切換到的新分支不衝突的更改。如果你在某個文件中發生了與新分支中相同文件衝突的更改,那麼git甚至不會讓你切換分支,除非你提交或隱藏更改 –

+0

我會迴應@VishalKamat所說的 - 這允許你做出一些改變,認識到這些改變應該在不同的分支上,然後在那裏應用它們。一旦你完成了改變,那麼他們會留在那個分支。 – swatkins

+0

您是否將新創建的文件添加到回購庫並提交了更改?很可能,您還沒有 – user3159253

回答

1

要使分支的超聲波部分,你需要提交到該分支。如果您在結帳中有未提交的工作,則在切換分支時(只要沒有衝突),更改將保留。

對分支提交更改並不意味着他們永遠存在。你仍然需要推動這些變化,使它們(以某種方式)永久化。所以如果你想暫時在另一個分支上工作,你可以提交你的修改,切換分支,在那裏工作,提交這個工作,切換回舊分支,執行「git reset HEAD〜」讓你更早作爲未承諾的變更承諾恢復工作,並從那裏繼續。

+0

句子「承諾變更不會永久變更」是不明確的。提交更改_does_將更改永久保存在_local_倉庫中。但是要發佈一個_usually_應該將這些更改推送到外部存儲庫中。 – user3159253

+0

是的。 「永久」是一個強硬的詞。在某種程度上,當您在編輯器中按下保存時,對文件的更改是永久性的,換句話說,在太陽變成紅色巨人之後,什麼都不是永久的。 :)(該死的Enter鍵......)我想說的是,只要你有你的修改只在本地提交,你仍然可以輕鬆地將它們收回。有一次,你把他們推到了服務器上,你可能無法做到這一點,因爲其他人可能會控制服務器,或者公司的政策禁止它,或者只是因爲其他人發現了你想要擺脫的更改。 – Bugfinger

0

或者,使用git stash save/git pop在切換分支之前/之後保存/恢復您的工作狀態。

相關問題