【问题标题】:How to close off a Git Branch?如何关闭 Git 分支?
【发布时间】:2011-12-23 09:13:05
【问题描述】:

我开始使用 Git + GitHub。

在我们的分布式团队中,每个成员都针对分配给他们的每个问题/要求创建自己的分支。

  1. git branch Issue#1 <-- create this branch
  2. git checkout issue#1 <-- switch over to this branch

现在code codecommitcodecommit 等...

然后pull requestcode-fixupcommitcodecommit .. 等等

最终拉取请求被接受。

但是,现在呢?

在本地开发机器上创建分支的人是否需要关闭分支?建议开发人员删除分支( ... -D ...),然后拉取/刷新 master .. 然后将获取他们所有的分支代码。

【问题讨论】:

  • Git 中的分支只是特定提交上的标签 - 所以基本上,如果您不再需要它 - 只需删除那个“分支”(那个提交上的那个“标签”)。在本地,只需执行 git branch Issue#1 -d 即可 - 没有代码丢失,只是从存储库中删除了一个标签
  • @marc_s 我建议只做一个答案:)
  • 所以@marc_s - 你是说一旦你完成你的分支..并且分支已经被推送..我们删除它?合并呢?
  • @Pure.Krome 至少我假设,“拉请求被接受”你的意思是它已经被合并了。是的,当然,将更改集成到 masterdevelop 或您的开发分支中的任何名称(Merge、Rebase(带/不带 squash)...)
  • 当我说“拉取请求被接受”时......这发生在其他地方。 (即负责批准所有 PR 代码的开发人员......)。我想知道我是否应该切换到本地开发机器上的 master 并进行合并。

标签: git github


【解决方案1】:

我们要求请求拉取请求的开发人员表明他们希望删除分支。大多数时候都是这种情况。有时需要一个分支(例如,将更改复制到另一个发布分支)。

我的手指已经记住了我们的过程:

git checkout <feature-branch>
git pull
git checkout <release-branch>
git pull
git merge --no-ff <feature-branch>
git push
git tag -a branch-<feature-branch> -m "Merge <feature-branch> into <release-branch>"
git push --tags
git branch -d <feature-branch>
git push origin :<feature-branch>

一个分支是为了工作。一个标签标记了一个时间地点。通过标记每个分支合并,如果需要,我们可以复活一个分支。分支标签已被多次用于审查更改。

【讨论】:

  • 我们最近对我们的程序进行了更改。使用git push --tags 会很麻烦,会下载所有标签。这使您很难拥有自己的本地标签。相反,我们使用git push origin branch-&lt;feature-branch&gt; 只推送一个标签。
  • 所以最后一行,你需要记住使用特征分支的标签名称,我们之前设置为“branch-”,而不仅仅是 .对吗?
  • @PremierBromanov 最后一行用于删除远程分支。记住标签@BillDoor 使用了git push --tags
  • 优秀的脚本!!
【解决方案2】:

完成代码后,首先将分支合并到主分支,然后删除该分支

git checkout master
git merge <branch-name>
git branch -d <branch-name>

【讨论】:

  • 这是在我自己的开发机器上,对吧?接受任何新代码的主要人员..他的机器在别处。
  • 如果其他人在进行合并,他通常会将您的分支指针放在单独的远程,例如发件人/分支名称。他将需要使用git remote prune sender 来在你这样做之后也摆脱它 - 尽管在大多数情况下,他不需要关心。
  • 不应该合并你自己的分支,除非你是负责将它集成到主树中的人。如果您不是并且您要求其他人集成它,请使用新的远程提交更新您的主分支 - 它们应该包含您请求提取的任何内容 - 然后删除您的分支。这样可以确保如果其他人改变了事情,你不会有任何问题。
【解决方案3】:

是的,只需运行 git push origin :branchname 删除分支即可。要稍后解决新问题,请再次从 master 分支。

【讨论】:

  • 这将删除远程分支,而不是本地分支。
  • 我不知道为什么修改为-2,这是正确的答案。他们肯定有一个远程分支,否则他们怎么能针对它发出 PR?
  • 如果你这样做,然后做一个 git pull,它不会也删除你的本地分支吗? (编辑:nm,我看到它明确没有,除非你运行 git remote prune。)
  • 分支历史会怎样?
猜你喜欢
  • 2021-07-02
  • 2013-11-04
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
相关资源
最近更新 更多