2013-09-30 155 views
1

我使用私人github回购项目作为我唯一的开发人员。在本地重新绑定提交后推送到远程提交

昨天,在将我最新的变化推向github之后,我决定试着用我的一些本地承诺来重新清理一些东西。我跟着Github's rebase tutorial并没有听从顶部的警告:

警告:它被认为是不好的做法,衍合你已经被推到远程仓库提交。这样做可能会引起git神的愤怒。

挤压一些提交之后,我试着一推,并得到了这一点:

$ git push origin master 
To [email protected]:me/my-repo.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:me/my-repo.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

好吧,这要我合并远程变化,但我还没有做出任何所以我会忽略。纵观帮助部分,它看起来像我不得不强迫带推的选项:

git push --force 

考虑没有其他人已经触及远程回购,还有的是我的最后一次推动和重订基期之间没有任何变化,这是可以做,还是会有后果?

+0

由于这是一个私人回购,并且您是唯一使用它的人,所以强行推送可能没问题。只是不要成为一种习惯。 :-) – peterjmag

回答

3

您需要强制推送。你所做的与'git reset'向后回溯到之前的某个commit相同,然后用更少的'更清晰'提交重做你的工作。只要你是唯一的用户,就去做吧。请记住,您在远程目录中挂载远程设备的任何本地副本现在都将与您的远程设备发生冲突。在再次工作之前,您将需要克隆。另外一个警告是,如果你意识到这些提交中的代码中有一个是通过强制推送而被抛出的,那么你就没有收回代码。

+0

@ Andrew-谢谢,只需要保证 – Yarin

2

既然你是唯一的贡献者,那么没关系。

如果其他人在此期间拉回购股票时会出现问题,但情况并非如此,因此强行推送是安全的。

这就是说,如果您曾经在我们分享的回购库上做过类似的事情,我会找到您的。

+0

哈,对。我会保持闭门,谢谢。 – Yarin

相关问题