我听说如果可能的话,推动力(git push -f
)是一种危险的做法。话虽如此,如果在一个小团队之间共享一个私人仓库,那么这样做的安全程序是什么?我想它会是这样的:
有人可以完成此程序或废弃它并提供更好的程序吗?我正在寻找最简单的安全程序。
答案 0 :(得分:7)
你可以做git push --force-with-lease
只有当远程分支在远程中处于相同状态时,它才会推送您的更改,因为您可以在本地查看它。
有关详细信息,请参阅https://git-scm.com/docs/git-push#git-push---no-force-with-lease。
答案 1 :(得分:0)
您似乎明白自己在做什么,为什么以及为何不安全。让我补充两点:
他们强行取/拉(git fetch/pull -f
)。
他们仔细核实他们已推出的任何代码都没有丢失。如果丢失了某些内容,他们会使用引用日志(git reflog
)来恢复丢失的提交,并将它们挑选/重新绑定到当前分支。
答案 2 :(得分:0)
以下方法看起来有些脆弱,但在所有其他团队成员在该分支上没有任何本地提交的情况下仍可以使用。
您将代码添加到分支并将其强制执行(问题中的步骤1-5):
git checkout feature
# Add code
git push --force-with-lease
您团队中的其他开发人员应执行以下操作(步骤6):
git fetch
git branch -D feature
git checkout feature
执行此操作后,所有团队成员将拥有与您完全相同的分支。
如果其中任何一个未按任何提交,它们将丢失!