2011-10-11 141 views
1

我還沒有在一個項目上工作了一段時間,只是試圖拉最新版本。忽略git合併

我不記得上次我參與這個項目的時間,但我顯然已經改變了主人,我沒有推動。因爲我收到了一些衝突警告。

有無論如何忽略我以前的提交,並拉下主要覆蓋我的文件?

你有什麼建議我在這種情況下做?

回答

2

我假設你現在已經解決了衝突,因此git log中的第一個提交是合併提交。

首先,保存舊的master分支是個好主意,以防萬一你想回去。你可以做到這一點:

git branch old-master master^ 

然後,如果你想你的master分支重置爲您從origin庫剛取出的的master版本,你可以做到這一點與git reset --hard

# Make sure that you're on the master branch: 
git checkout master 

# Make sure the remote-tracking branches from origin are up-to-date: 
git fetch origin 

# Check that there's no output from "git status": 
git status 

# Now reset master to where origin/master points to: 
git reset --hard origin/master 

請注意,git reset --hard是一個危險的命令 - 它會丟棄任何未提交的更改,這就是爲什麼我建議在使用之前確保git status的輸出是乾淨的。

+0

這是偉大的感謝 - 的「git的分支OLD- master master ^命令對我來說是一個新的命令。很有用。 – Finnnn

+1

要添加一點,'''後綴'''意味着採取'主'的第一個父母。 (你也可以通過第一個父母爲祖父母做'master ^^',等等。)合併提交的第一個父母總是被合併的那個,也就是你合併之前的提交。因此'master ^'將在合併之前成爲你的主人。你也可以用'master @ {1}'做到這一點,它給你記錄在reflog中的主分支的前一個位置 - 在這種情況下它們應該是相同的,但有些可能表明後者更明顯。 –

0

我想一個簡單的方法是將備份您本地的master分支,並重新創建它...是這樣的:

git fetch origin 
git checkout master 
git branch master -m old-master 
git checkout -b master origin/master 
git branch -D old-master (if you don't care about your commits there) 

希望它能幫助,