我做了文件更改,但当我尝试推送时,SourceTree抱怨有人在我之前推送了。虽然文件不同,但我被迫合并更改。有时我不得不备份并重置我的工作区,才能再次推送。是否没有强制推送的方法?
我做了文件更改,但当我尝试推送时,SourceTree抱怨有人在我之前推送了。虽然文件不同,但我被迫合并更改。有时我不得不备份并重置我的工作区,才能再次推送。是否没有强制推送的方法?
Preferences
(偏好设置)Advanced
(高级)Allow force push
(允许强制推送)下次推送时,将会出现一个额外的复选框:Force push
(强制推送)。
勾选它还会显示一个额外的 Confirm Force Push
(确认强制推送)对话框,在实际执行强制推送之前需要先确认一下。
即使文件不同,您也必须在推送之前执行合并或重新基础操作。您当前工作分支的提交必须合并到服务器上存在的当前分支中,然后才能更新它。您正在合并“分支”,而不是文件。
使用“强制推送”命令不会强制将您的提交应用于远程分支上的内容 - 它会强制将您的提交替换为远程分支上的提交。使用此选项将放弃其他用户所做的所有提交。
由于这是一项破坏性操作, SourceTree 不包括对“强制推送”命令的 GUI 访问。以下是 Atlassian 的 Steve Streeting 对此的看法:
SourceTree没有暴露强制推送,因为这几乎总是不是你想要做的事情。这意味着有人在你之前推送了代码。你应该做的是拉取他们的更改,合并它们(或将你的更改重新基于它们),然后推送。