安全推力程序?

问题描述 投票:1回答:3

我听说如果可能的话,推力(git push -f)是一种危险的做法。话虽如此,如果在一个小团队之间共享一个私人仓库,那么这样做的安全程序是什么?我想它会是这样的:

  1. 我要求团队成员在完成之前不要推。
  2. 我拿。
  3. 我根据需要更新分支的历史记录(修改,变更等)。
  4. 我强迫推。
  5. 我告诉他们我已经完成了。
  6. 他们做___以获取并将新历史与他们的代码集成,而不会丢失任何东西。

有人可以完成此程序或废弃它并提供更好的程序吗?我正在寻找最简单的安全程序。

git push git-push
3个回答
7
投票

您可以执行git push --force-with-lease只有当远程分支在远程中处于相同状态时才会推送您的更改,因为您可以在本地查看它。有关详细信息,请参阅https://git-scm.com/docs/git-push#git-push---no-force-with-lease


0
投票

似乎你明白你在做什么,为什么,为什么它不安全。让我补充两点:

  1. 他们做强制取/拉(git fetch/pull -f)。
  2. 他们仔细核实他们已推出的任何代码都不会丢失。如果丢失了某些东西,他们会使用引用日志(git reflog)来恢复丢失的提交,并将它们挑选/重新绑定到当前分支。

0
投票

以下方法看起来很脆弱,但是假设所有其他团队成员在所述分支上没有任何本地提交,则会起作用。

您将代码添加到分支并推送它(问题中的步骤1-5):

git checkout feature
# Add code
git push --force-with-lease

团队中的其他开发人员应该执行以下操作(步骤6):

git fetch
git branch -D feature
git checkout feature

执行完毕后,所有团队成员都将拥有与您完全相同的分支。

如果他们中的任何一个有任何非推送提交,他们将丢失!

© www.soinside.com 2019 - 2024. All rights reserved.