我用我的朋友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
。