2015-10-19 77 views
2

在結帳之前是否需要提交git存儲庫?我聽說過,因爲我可以失去這些變化。但是,在修改文件並檢出後,我可以輕鬆地回到我的上一個分支,並且我沒有失去任何工作。該文件具有M狀態。沒有提交的Git結賬

他們說hereM意味着合併(這很奇怪,我想它通知我有關修改)。

$ git checkout master 
M README 
Switched to branch 'master' 
$ cat README 
This is the README file. 
This line was added in the working directory while in the test branch. 

從'Git Checkout Without Committing:WITHOUT A Conflict'部分。 M README是什麼意思?

感謝您的幫助。

回答

2

如果可以刪除任何當前修改,則將不處理A git checkout

https://git-scm.com/book/en/v2/book/01-introduction/images/areas.png

(來自 「Getting Started - Git Basics」 圖像)

example mentioned實際上使用git checkout -m(並且沒有提交),這意味着修改被合併:

-m 
--merge 

當如果您對o進行了本地修改,則切換分支,ne或更多文件在當前分支和您正在切換的分支之間不同,該命令拒絕切換分支以保留上下文中的修改。

但是,使用此選項,當前分支,工作樹內容和新分支之間的三向合併完成,您將在新分支上。

這是最好的承諾(或藏匿)結帳前的電流變化,但checkout -m至少可以合併這些變化,而不是失敗(或者在checkout -f情況下將其刪除的(見「What's the difference between 「git reset」 and 「git checkout」?」)。

什麼是中號自述意味着

這是不分級的(未提交)的修改,在正在進行的工作。
一個git checkout -m允許將該修改合併到目標分支中,而不是使簡單的git checkout失敗。
另請參閱「What’s In The Index? What’s Changed?」。

https://git-scm.com/figures/18333fig0201-tn.png

+0

@ user107986那就是想法:之前的測試分支中加入一個衝突'git的結帳-m master'的:改變被合併,而合併衝突所示。 – VonC

+0

刪除評論並將其置於問題中。 – user107986

+0

@ user107986我已經編輯了相應的答案。 – VonC