我刚刚创建了指向origin/master
的默认存储库
我想创建一个release
和一个production
分支
我应该从origin / master本身创建一个git分支
e.g。 git branch release
和git branch production
或
我应该从origin / release
创建origin / production吗?git branch release
git push origin release
和
git checkout release
git branch production
首选方法是什么
答案 0 :(得分:2)
我认为你在这里混淆了这些概念。
创建新分支的哪个分支无关紧要,最重要的一点是您希望从哪个分支开始。
git中的分支和标签只是指向特定提交的指针(具有以DAG表示的历史记录)。不同之处在于标签通常会在时间上保持静态,而分支通常会随着编码的进展而变化。
基本上,当您在历史记录中获得第一个版本时,请创建指向该提交的release
分支。 (我建议也标记它。)
我不确定你想要实现什么,可能你真的不需要分支,标签就足够了。我建议您在对存储库做出这些决定之前阅读pro git book以更熟悉分支(pro git's "Tagging" chapter)和标记(pro git's "What a Branch Is" chapter)的概念。
答案 1 :(得分: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没有记录分支创建的分支,而只知道它们之间最近的常见提交是什么。
答案 2 :(得分:0)
remotes/origin/...
分支是远程跟踪分支。您不应该直接操作它们,它们服务器跟踪远程存储库的分支。 (例如,当您git fetch <remote-repo-name>
时,它们会得到更新。)
要回答您的问题,您应该从本地主服务器创建发布和生产分支(因此我假设当前分支是主服务器):
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
推送到远程和分支并添加上游引用,因此当您拉动并推送到该分支时,您不再需要定义它们。
相同的工作流程适用于生产分支(虽然主要通常被视为生产就绪)