假设我们有一个远程代码仓库,并克隆到本地。我们切换到主分支(master),这样我们就拥有了本地 master 分支和远程的 remotes/origin/master 分支。然后我需要创建一个新的话题分支,一旦评审通过就将合并到远程主分支。
在从本地 master 或远程等效分支(如果有区别的话)中创建分支的优缺点是什么?这些论点是否适用于长期运行的分支?
编辑:我一直在尝试跟踪 origin/master,以便在本地分支上创建 pull request。但我注意到一个很大的问题:在 TFS 上它不允许你创建 pull request。如果你需要它,你必须将你的分支推送到 origin,这将使其与 master 分离,并跟踪新的远程分支,然后才能创建 pull request;我所说的有什么错误吗?如果没有,那么这是不从 origin/master 分支开始创建分支的一个很大的原因。
在从本地 master 或远程等效分支(如果有区别的话)中创建分支的优缺点是什么?这些论点是否适用于长期运行的分支?
编辑:我一直在尝试跟踪 origin/master,以便在本地分支上创建 pull request。但我注意到一个很大的问题:在 TFS 上它不允许你创建 pull request。如果你需要它,你必须将你的分支推送到 origin,这将使其与 master 分离,并跟踪新的远程分支,然后才能创建 pull request;我所说的有什么错误吗?如果没有,那么这是不从 origin/master 分支开始创建分支的一个很大的原因。
git pull
和git push
的行为也会有所不同。请注意,当从远程引用进行分支操作时,通常会自动设置跟踪,但从本地引用进行分支操作时不会自动设置。 - André Sassimaster
上随意提交代码并忘记它们是很容易的。如果您手动创建分支,这可能不是什么大问题,但如果您要更多地自动化(例如,与您的工单系统集成的脚本)并将此自动化提供给许多用户,则几乎肯定要使用origin/master
。既然没有必要,为什么要假设master
是最新的而不是不同步的呢? - Chrisgit push
和git pull
(根据您的配置)将推送到和拉取本地分支设置为跟踪的远程分支。对于主题分支,要么您从不发布它(因此无需跟踪远程),要么将其作为主题分支本身发布(在这种情况下,它将跟踪自己的远程,例如origin/my-topic
)。 - poke