2012-08-12 20 views
2

我有我的第一次經驗合併其他人的變化與Git(而不是僅僅克隆/推動自己在一個微不足道的方式。)我用git pull和衝突解決的基本過程很簡單,該位似乎工作正常。爲什麼git爲我的checkin文件在合併中拾取,但未觸摸我?

雖然我對我所看到的有點困惑。我相信這是一個非常簡單的問題。但是,爲什麼在我從主人那裏拉出併合並某人的更改之後,它會將這些文件顯示爲正在我的分支中「上演」......即使我根本沒有觸摸這些文件?

例如:另一個人在項目中添加了一個全新的PNG。當我做git status時,PNG顯示爲「已添加」。我沒有做git add,合併放在那裏自動。是否一切正常工作,這不會看起來像它來自我的提交?當我承諾並推送時會不會出現某種差異魔法?

回答

4

請記住,拉只是一個獲取+合併。

您需要承諾合併。這導致了一種稱爲合併提交的事情。合併提交將作爲父母同時包含最新版本和剛剛提交的修訂。這些文件顯示爲暫存,因爲它們將被包含在合併提交中。

嘗試運行git commit,然後查看生成的歷史記錄, gitk

您可以在Git Book中瞭解有關合並的更多信息。

1

它確實來自你的提交。您的合併提交是將文件添加到您的分支的合併提交,因爲合併發生之前它不在那裏。如果並且當您將分支合併到master時,該合併不會顯示您已添加該文件,因爲它已在master中。

+0

短語「如果和當」在這裏是有幫助的......我想我正在圍繞它的工作方式,有點。 :-) – HostileFork 2012-08-14 06:35:20

相關問題