Git 小麻烦
我正在和我的朋友一起使用git。 我做了几次提交,我的朋友没有更新他的本地回购协议,而是用-f arugment推送:Git 小麻烦,git,merge,commit,push,Git,Merge,Commit,Push,我正在和我的朋友一起使用git。 我做了几次提交,我的朋友没有更新他的本地回购协议,而是用-f arugment推送: git push -f origin master 现在在git服务器(github)中,我的提交被销毁,最近的提交是我的朋友。但我在本地有过犯罪记录。我能不能把它们合并回主人那里?或者我必须用最新版本手工完成这项工作?似乎你的朋友确实更改了公共存储库中已发布的内容。看见从烧掉你的朋友开始 通常情况下,git pull会触发您这边的合并。您可以随时将整个存储库复制为备份,以备
git push -f origin master
现在在git服务器(github)中,我的提交被销毁,最近的提交是我的朋友。但我在本地有过犯罪记录。我能不能把它们合并回主人那里?或者我必须用最新版本手工完成这项工作?似乎你的朋友确实更改了公共存储库中已发布的内容。看见从烧掉你的朋友开始
通常情况下,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
),但它会删除您朋友的贡献
你可以:
- 在GitHub上重命名
(请参阅“”)master
- 从GitHub获取“friend_master”分支,并在您的master上重新设置它的基础,集成您朋友的贡献,并验证它们
(使用完整内容重新创建主分支)git推送源主机
master
分支重置为origin/master