我用我的朋友git。 我做了幾次提交和我的朋友沒有更新他的本地回購,並與-f arugment推:有點混帳問題
git push -f origin master
現在在git的服務器(github上)我提交被破壞,最新的提交是我的朋友。但我有本地提交的歷史。我能以某種方式將它們歸還給主人嗎?或者我必須用最新版本的手來做到這一點?
我用我的朋友git。 我做了幾次提交和我的朋友沒有更新他的本地回購,並與-f arugment推:有點混帳問題
git push -f origin master
現在在git的服務器(github上)我提交被破壞,最新的提交是我的朋友。但我有本地提交的歷史。我能以某種方式將它們歸還給主人嗎?或者我必須用最新版本的手來做到這一點?
似乎你的朋友確實改變了已經發布在公共存儲庫上的東西。見http://progit.org/book/ch3-6.html。開始燒你的朋友。
通常情況下,git pull應該觸發你的合併。以防萬一,您可以隨時將整個存儲庫複製爲備份。您也可以簡單地將最新版本的更改複製到新的結帳中,並將所有這些更改提交爲單個提交。
我沒有測試過這一點,但我想我會做強迫你提交發布到github上(因此重寫再次史),有你的「朋友」拉你的變化,重訂他的更改,然後推動他的變化。通過這種方式,您可以將所做的更改都保存在同一個地方。
一個好的經驗法則是切勿強行將致力於GitHub的 :)做這種曾經讓你的回購回它是在之前的狀態你的「朋友」搞砸了:
# on your machine
git push origin master --force
#now your "friend's" working copy is fairy screwed up, so on his machine:
git checkout -b screwed_up #checks out a new branch called screwed_up
git pull origin master # pulls in your changes
git checkout master #checks out his version with his changes
git rebase screwed_up #moves his changes to the end of your changes (see git graphs for more details)
git commit -am 'your message here'
git push origin master #pushes his changes, which are now merged with your changes back to github
推回自己的本地提交是一種方式(git push origin master --force
),但它會抹去您朋友的貢獻。
您可以:
master
(見 「renaming remote git branch」)git push origin master
(重建主分支有完整內容)然後你的朋友可以在他/她的本地master
分公司只是重置爲origin/master
。