如何在GitHub上从主分支创建开发分支

75

我在GitHub上创建了一个仓库,目前只有一个master分支。我的本地工作副本已经完全与GitHub上的远程/origin master同步。

现在我想在GitHub上创建一个development分支,以便团队中的其他人可以开始向development推送更改(而不是直接向master推送),并提交PR、请求代码审查等。

因此,我尝试在本地创建一个新的development分支并将其推送:

git checkout -b development
git push origin development:master

但是 git 只会说 Everything up-to-date。所以我问:

如果我已经将本地仓库与 master 同步,如何创建一个名为 development 的远程分支,使其包含 master 分支的完全副本?


4个回答

134

创建一个git开发分支

您可以像这样列出所有当前的分支:

git branch -a

这显示了所有本地和远程分支。假设你只有一个master分支,你会看到以下内容:

* master
  remotes/origin/master
< p > * 表示当前分支。

使用以下命令创建名为 develop 的新分支:

git checkout -b develop

-b 标志创建分支。现在列出分支应该显示:

* develop
  master
  remotes/origin/master

切换分支

不应直接向master分支提交任何内容。相反,您应该在develop分支上完成所有工作,然后在有新的公共发布时将develop合并到master

您已经在develop分支中,但如果您不在该分支中,则切换方式如下:

git checkout develop

这是创建分支的相同方式,但不使用-b参数。

在develop分支上进行更改

进行更改时,按照通常的方式添加并提交:

git add .
git commit -m "whatever"

第一次将代码推送到远程仓库时,请按以下方式执行:

git push -u origin develop

-u标志代表--set-upstream。第一次之后,您只需要这样做:

git push

将develop合并到master

当你的develop准备好合并到master时,可以按照以下步骤进行:

首先切换到本地的master分支:

git checkout master

要将develop合并到master中,请执行以下操作:

git merge develop

然后将本地主分支中的更改推送到远程主分支:

git push

完成。

删除分支

如果您不再需要develop分支,或者想要删除它并重新开始,请执行以下操作:

删除远程 develop 分支:

git push -d origin develop

然后删除本地分支:

git branch -d develop

-d 表示删除。


6
这真是太惊人了,对于初学者非常有帮助。 - Chakri
真棒的答案,非常有帮助。 - MCP_infiltrator
虽然已接受的答案可能对问题来说是完美的,但这个应该被接受。 - laconbass

92

当你执行时

$ git push origin development:master

实际上正在发生的是 git 正在获取 <local>:<remote> 并将 <remote> 更新为与 <local> 分支相同。

由于您从 master 执行了 git checkout -b development,因此您的本地 development 包含 master 的所有提交记录;因此它显示为一切都是最新的。

您只需执行

$ git checkout -b development
$ git push origin development

推送新分支


develop 分支和其他分支一样吗?我的意思是,我们需要为 develop 分支设置任何配置吗?有点困惑。 - Blues Clues
@Jonjie 我不知道有没有这样的说法。在Git版本控制中,任何分支都是相同的 - master分支可以很容易地被称为“main”,或者一个特性分支可以很容易地用作“master”。 - Yashank

9
您还可以使用 git flow 。它将自动创建具有正确命名约定的分支,这是一个好的实践。
git flow init

并且推动

git push --set-upstream origin develop

6
这对我很有用。
git push origin development

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接