【发布时间】:2014-12-02 17:17:37
【问题描述】:
在我们的项目中,每个开发人员都在自己的分支中解决他的问题。碰巧有人犯了一个错误,想在将他的分支推送到远程仓库后执行git commit --amend。
问题:这是否危险?其他开发者会失去进度吗?
【问题讨论】:
标签: git
在我们的项目中,每个开发人员都在自己的分支中解决他的问题。碰巧有人犯了一个错误,想在将他的分支推送到远程仓库后执行git commit --amend。
问题:这是否危险?其他开发者会失去进度吗?
【问题讨论】:
标签: git
git commit --amend本质上改写了历史;具体来说,最近的提交。
如果您尚未将此提交推送到其他人从中提取的公共分支(即合并到主分支),或者如果您绝对确定没有其他人合并或基于他自己的工作,这通常是安全的从您的分支机构完成的工作。
因此,总而言之,如果满足以下条件,则可以安全地进行修改:
如果您不能满足这些条件中的任何一个,则不要推送修改提交,因为这会给在修改之前拉过您的分支的任何人造成很多混乱。
更具体地回答您问题的以下部分:
(将他的分支推送到远程仓库后)
这实际上取决于您所说的“远程仓库”。如果它只是他自己在远程存储库上的本地分支,并且还没有人将他的分支拉到他们自己的分支中,那么这样做是完全安全的,因为他只是在修改自己的远程存储库,没有其他人使用。如果“远程仓库”实际上是指远程主分支,那么这样做是不安全的,因为项目中的其他人可能会使用该分支来创建自己的本地分支以进行新工作。
【讨论】: