唉。所以Dropbox刚刚给我带来了一些问题,因为它不应该同步它。我不知道是merge
还是rebase
还是别的。我需要一些先进的gitfu。
我是项目中唯一的开发人员,因为我的桌面和笔记本电脑之间的切换而出现了冲突。没有其他人使用这个回购...我可以直接擦远程仓库并重新开始,它会没事的。 (我真的不想丢失历史记录,但是从代码POV中可以很好。)
正在运行git push
只是说:
To github.com:JCW/kicker-ticketing.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:JCW/kicker-ticketing.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
git status
显示:
On branch master Your branch and 'origin/master' have diverged,
and have 6 and 3 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean
我删除了所有冲突的文件(包括.git/
中的文件并手动添加了所有代码更改) - 我的本地仓库现在应该是远程origin/master
。
在这个特殊的独立开发情况下,最好的方法是将我的本地仓库推送到新的远程origin/master
?
我已经阅读了a few guides on rebase vs merge,但显而易见的解决方案仍然存在。
下次我会确保Dropbox在继续工作之前没有崩溃。叹息。
答案 0 :(得分:2)
你说:
我的本地仓库现在应该是远程起源/主人
如果您确定,要从本地状态重置远程状态,请运行git push -f
。这对远程端是破坏性的,所以如果你先备份它就好了。
作为一名独立开发人员(以及小团队),我更喜欢使用git pull --rebase
来保持线性历史记录,因为这样我就可以更轻松地调试这样的问题。