Source tree无法推送

4

我做了文件更改,但当我尝试推送时,SourceTree抱怨有人在我之前推送了。虽然文件不同,但我被迫合并更改。有时我不得不备份并重置我的工作区,才能再次推送。是否没有强制推送的方法?

2个回答

5
  1. 打开 SourceTree 的 Preferences(偏好设置)
  2. 选择标签页:Advanced(高级)
  3. 勾选第三个复选框:Allow force push(允许强制推送)
  4. 启用该复选框并关闭偏好设置窗口。

下次推送时,将会出现一个额外的复选框:Force push(强制推送)。

勾选它还会显示一个额外的 Confirm Force Push(确认强制推送)对话框,在实际执行强制推送之前需要先确认一下。


此设置已移动。现在可以在“工具”->“选项”,选项卡“Git”下找到它。然后在水平线下方,您会看到复选框“启用强制推送”。 - Adrian W

0

即使文件不同,您也必须在推送之前执行合并或重新基础操作。您当前工作分支的提交必须合并到服务器上存在的当前分支中,然后才能更新它。您正在合并“分支”,而不是文件。

使用“强制推送”命令不会强制将您的提交应用于远程分支上的内容 - 它会强制将您的提交替换为远程分支上的提交。使用此选项将放弃其他用户所做的所有提交。

由于这是一项破坏性操作, SourceTree 不包括对“强制推送”命令的 GUI 访问。以下是 Atlassian 的 Steve Streeting 对此的看法:

SourceTree没有暴露强制推送,因为这几乎总是不是你想要做的事情。这意味着有人在你之前推送了代码。你应该做的是拉取他们的更改,合并它们(或将你的更改重新基于它们),然后推送。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接