Gitlab-如何在分支项目中组织分支?

时间:2019-03-04 17:52:59

标签: git github gitlab

我从GitHub分支了一个项目。我在master分支中进行自己的开发(通过为已开发的功能/修复程序创建分支并将其合并回master)。

现在,我在叉子中创建了一个分支bugfix-123,以解决原始项目中的问题123。我想创建一个新的请求,以便将我的修订合并到原始项目中。但是我注意到,拉取请求不仅包含错误修正本身,而且还包含自创建fork以来我在master分支中的所有提交。

如何创建仅包含单个提交的请求请求?我是否需要为此创建另一个分叉?为了能够在原始项目中创建请求请求并执行自己的分叉版本开发,我应该做些什么改变?

2 个答案:

答案 0 :(得分:1)

正如Send a pull request on GitHub for only latest commit中已经提到的,有必要为拉取请求创建一个单独的错误修正分支。 编辑:虽然我认为我的答案与链接中的已接受答案有所不同,但我可能误读了它-我是用相同的方式做的:

git fetch upstream              #synchronize local repo from upstream

git checkout upstream/master    #the upstream repository master has already a local branch, upstream/master, it's not necessary to create another copy
git checkout -b PR-bugfix-123     #create a branch dedicated for the pull request, and make it your current branch
git cherry-pick <commit hash>   #merge changes from a specific commit; cherry-pick also allows picking a range of commits

git push origin PR-bugfix-123   #publish the branch to the fork in order to create the pull request

符号:

我决定采用以下惯例:

  • 开发分支仍然是主分支,无需重命名
  • 开发bugfix分支仍然是bugfix-123
  • 拉取请求分支的前缀为“ PR”:PR-bugfix-123

答案 1 :(得分:0)

首先,您应该将原始项目添加为远程项目:

git remote add upstream <URL to original project>

现在从原始文件中获取分支:

git fetch upstream

您现在将拥有一个名为upstream/master的分支,该分支从原始存储库镜像了master分支。您可以通过在此分支之上重新定基来移动错误修复分支:

git checkout -b PR-bugfix-123 bugfix-123
git rebase --onto upstream/master master