使用 SourceTree 时避免对 master 进行任何更改

Avoid any change on master, when using SourceTree

我目前正在参与一个开源项目,我们正在使用 git 来管理相当多的分支、拉取请求等

虽然我很喜欢git命令行,但我考虑使用SourceTree。然而,由于它是一个图形用户界面,我担心我错误地点击了某个地方并将一些更改推送给了 master。

我可以告诉 SourceTree 不要碰 master 吗?我既不想提交,也不想变基等以任何方式操纵主分支。

在 SourceTree 上你可以通过 double-clicking 选择一个分支。从那里开始,您的提交适用于该分支,如果您不选择 master 分支,则无需担心单击。此外,如果您单击“提交”,它不会自动提交您的更改。将显示一个面板,您可以在其中查看正在提交的内容并检查要提交的文件、编写提交消息等。在此面板上,通过单击“提交”按钮,您可以将提交保存在本地计算机上。

单击推送会显示一个面板,您可以在其中查看正在推送的内容。如果你不喜欢它,你可以取消它。否则你可以确认你的意图。

如果你不小心犯了错,但还没有推送,你可以right-click提交并从这里选择删除。

因此,您不会不小心在 master 上提交任何内容。但是,当您完成分支后,您可能需要将其合并到主分支中,这可以通过 Git/HG 流程来完成。如果你想在不关闭分支的情况下将部分更改放入 master,你可以 double-click on master,right-click on your branch 并选择合并。

你担心的事故实际上是不可能发生的。

  1. 不签出 origin/master,启用跟踪。
  2. 不要配置任何本地分支来跟踪 origin/master
  3. 不要创建名为 master 的本地分支(如果您推送该分支,SourceTree 会自动匹配名称)。

在技术上仍然可以修改远程主机,但它需要您明确指定它(例如 "Remotes/origin/master, rightclick, delete" 仍然可以,但不太可能无意中发生)。

您应该将 master 设置为 Protected Branch
此外,通常,您可以避免在本地签出您不在工作的任何分支。保持本地分支机构清洁,只检查您需要的。