1

我为我是唯一开发人员的项目使用私人 github 存储库。

昨天,在将我的最新更改推送到 github 之后,我决定尝试重新定位我的一些本地提交以清理一些东西。我遵循了Github 的 rebase 教程,并没有注意顶部的警告:

警告:将已推送到远程存储库的提交重新设置基准被认为是不好的做法。这样做可能会引起 git 众神的愤怒。

在压缩了一些提交后,我尝试了推送,得到了这个:

$ git push origin master
To git@github.com:me/my-repo.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com: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

考虑到没有其他人接触过远程仓库,并且我上次推送和重新定位之间没有任何变化,这样做可以吗,还是会有后果?

4

2 回答 2

3

您将需要强制推动。您所做的与将“git reset”倒退到以前的某个提交非常相似,然后用更少的“更干净”的提交来重做您的工作。只要你是唯一的用户,就去吧。请记住,您在某个目录中的任何远程远程副本现在都将与您的远程冲突。您将需要在再次工作之前进行克隆。另一个警告是,如果您意识到其中一个提交中有代码,您会通过强制推送将其删除,那么您将无法取回它。

于 2013-09-30T14:13:02.103 回答
2

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

如果其他人在此期间撤消了 repo,就会出现问题,但情况并非如此,因此强制推送是安全的。

也就是说,如果你在我们共享的回购协议中做过类似的事情,我会找到你的。

于 2013-09-30T14:12:59.493 回答