git覆盖覆盖推送_强制“git push”覆盖远程文件

您应该能够使用强制对远程仓库进行本地修订

git push -f

(例如git push)。 离开git rebase --continue和git pull将强制推送已设置为--set-upstream的所有本地分支。

请注意,如果其他人共享此存储库,则其修订历史记录将与新存储库冲突。 如果他们在变更点之后有任何本地提交,他们将变为无效。

更新:我想我会添加一个旁注。 如果您要创建其他人将要审核的更改,那么创建具有这些更改的分支并定期重新定位以使其与主开发分支保持同步并不罕见。 只是让其他开发者知道这会定期发生,所以他们会知道会发生什么。

更新2:由于观众数量的增加,我想添加一些关于git push确实遇到强制推送时该怎么做的其他信息。

假设我克隆了你的repo并添加了一些提交,如下所示:

D----E topic

/

A----B----C development

但后来git push分支被git rebase --continue命中,这将导致我在运行git pull时收到类似的错误:

Unpacking objects: 100% (3/3), done.

From

* branch development -> FETCH_HEAD

Auto-merging

CONFLICT (content): Merge conflict in

Automatic merge failed; fix conflicts and then commit the result.

在这里我可以解决冲突和git push,但这会让我有一个非常丑陋的提交历史:

C----D----E----F topic

/ /

A----B--------------C' development

使用git push看起来很诱人,但要小心,因为这会让你陷入搁浅的提交:

D----E topic

A----B----C' development

所以最好的选择可能就是做一个git push.这将要求我像以前一样解决任何冲突,但对于每一步而不是提交我将使用git rebase --continue.最后,提交历史将看起来更好:

D'---E' topic

/

A----B----C' development

更新3:您还可以使用git push选项作为“更安全”的力量正如Cupcake所说的那样回答:

用“租约”强制推动可以使力推动失败   是远程的新提交,你没想到(技术上,如果   你还没有把它们带到你的远程跟踪分支中)   如果您不想意外覆盖其他人,则非常有用   承诺,你甚至还不知道,你只是想   覆盖你自己的:

git push

您可以了解有关如何使用git push的更多详细信息   阅读以下任何内容:

git push文档

Git:如何忽略快进并将原点[branch]恢复到之前的提交?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值