1

我刚刚创建了指向origin/master 我想创建一个release和一个production分支的默认存储库

我应该从 origin/master 本身创建一个 git 分支吗

例如git branch releasegit branch production

或者

我应该从原产地/发布创建原产地/生产吗

git branch release
git push origin release

git checkout release
git branch production

什么是首选方法

4

3 回答 3

2

在你的情况下,没关系。分支引用(本地或远程)就是:对提交的引用。正在做

git checkout master
git branch release
git branch production

或者

git checkout master
git branch release
git checkout release
git branch production

完全等效,因为最终它们都只是对同一提交的引用(您可以通过运行git rev-parse每个分支名称并比较结果来验证这一点)。Git 不记录从哪个分支创建分支,而只知道它们之间最近的共同提交是什么。

于 2013-01-14T18:02:15.937 回答
2

我认为您在这里混淆了这些概念。

从哪个分支创建新分支并不重要,最重要的是您希望它从哪个提交开始。

git 中的分支和标签只是指向特定提交的指针(其历史记录在DAG中表示)。不同之处在于标签通常在时间上保持静态,而分支通常随着编码的进展而变化。

所以基本上,当您在历史记录中获得第一个版本时,创建一个release指向该提交的分支。(我也建议标记它。)

我不确定您要实现什么目标,可能您真的不需要分支,标签就足够了。我建议您阅读pro git 书籍,以更熟悉分支(pro git 的“标记”章节)和标记(pro git 的“分支是什么”章节)的概念,然后再对您的存储库做出这些决定。

于 2013-01-14T17:58:24.780 回答
0

remotes/origin/...分支是远程跟踪分支。您不应该直接操作这些,它们充当跟踪远程存储库的分支。(例如,当您这样做时,它们会更新git fetch <remote-repo-name>。)

要回答您的问题,您应该从本地 master 创建发布和生产分支(所以我在下面假设当前分支是 master):

git checkout -b release
<do some work>
git add .
git commit -m <commit message>
git push -u origin release

git checkout -b创建一个新分支并在一条指令中切换到它。git push -u推送到远程和分支并添加上游引用,因此当您拉取并推送到该分支时,您不再需要定义它们。

相同的工作流程适用于生产分支(尽管 master 通常被认为是生产就绪的)

于 2013-01-14T17:56:10.360 回答