使用git,如何避免rebase和推?

时间:2012-09-04 03:42:35

标签: git github

我认为关于rebase和push的唯一规则是

  

提交被推送到公共回购后,不要改变和推送

但是,如果我们只使用git pushgit push origin <branch-name>并且从不使用--force-f标志,那么它是否真的会发生?

4 个答案:

答案 0 :(得分:6)

如果你的公开回购是一个简单的回购(意味着你可以直接在公共回购中自行修改任何东西),如果你将git config receive.denyNonFastForwardsreceive.denyDeletes设置为true,那么你应该没事。

  

如果设置为true,git-receive-pack将拒绝不是快进的ref更新。使用此选项可以通过推送阻止此类更新,即使强行推送

     

如果设置为true,git-receive-pack将拒绝删除ref的ref更新。使用此选项通过推送阻止此类参考删除。

另请参阅“Is there a way to configure git repository to reject 'git push --force'?”。

请注意,例如,这些设置不能直接用于GitHub仓库。

答案 1 :(得分:1)

如果您不使用--force,远程仓库永远不会以“坏”状态结束,这是真的(我认为),所以你不能意外地做到这一点。

但是如果你重新设置已经在遥控器上的提交,那么你的本地回购可能最终会处于这样一种状态:你无法通过一些体操来推动远程回购,而这种体操无论如何都会破坏反叛的目的。

答案 2 :(得分:1)

是。您不能在不使用--force。

的情况下重新推送远程跟踪分支

答案 3 :(得分:1)

没有&#34; -f&#34;国旗,它永远不会发生 但是如果没有能力推动你的分支你会做什么呢?

Rebase主要是为了保持您的分支历史记录不错且连续 如果您是唯一合并到该代码中的人,或者仅在本地进行此操作,那么这是安全的 否则,确保您在重新定位之前与所有其他参与者位于同一页面