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

sme*_*eeb 25 git github

我在GitHub上创建了一个repo,master到目前为止只有一个分支.我的本地工作副本与masterGitHub上的远程/原点完全一致.

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

所以我尝试development在本地创建一个新分支并推送它:

git checkout -b development
git push origin development:master
Run Code Online (Sandbox Code Playgroud)

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

如果我是最新的master,我如何创建一个development包含精确副本的远程分支master

Sur*_*gch 48

创建一个 git develop 分支

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

git branch -a
Run Code Online (Sandbox Code Playgroud)

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

* master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

*指当前分支。

要创建一个名为 develop 的新分支,请使用以下命令:

git checkout -b develop
Run Code Online (Sandbox Code Playgroud)

-b旗创建了分公司。现在列出分支应该显示:

git branch -a
Run Code Online (Sandbox Code Playgroud)

更改分支

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

您已经在您的开发分支中,但如果您不在,则切换方式如下:

git checkout develop
Run Code Online (Sandbox Code Playgroud)

这与您创建分支的方式相同,但没有-b.

在开发中进行更改

进行更改时,像往常一样添加和提交:

git add .
git commit -m "whatever"
Run Code Online (Sandbox Code Playgroud)

第一次推送到遥控器时,请这样做:

git push -u origin develop
Run Code Online (Sandbox Code Playgroud)

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

git push
Run Code Online (Sandbox Code Playgroud)

合并开发到掌握

一旦你develop准备好合并,master你可以这样做:

首先切换到本地主分支:

git checkout master
Run Code Online (Sandbox Code Playgroud)

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

git merge develop
Run Code Online (Sandbox Code Playgroud)

然后将本地 master 中的更改推送到远程 master:

* master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

完毕。

删除分支

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

删除远程开发分支:

git push -d origin develop
Run Code Online (Sandbox Code Playgroud)

然后删除本地分支:

git branch -d develop
Run Code Online (Sandbox Code Playgroud)

-d方法删除。

  • 这简直太神奇了,对初学者非常有帮助 (2认同)

dda*_*son 42

当你这样做

$ git push origin development:master
Run Code Online (Sandbox Code Playgroud)

实际发生的是git正在采取<local>:<remote>和更新分支是<remote>什么<local>.

既然你执行git checkout -b developmentmaster,当地development拥有的所有提交master做; 因此它表明一切都是最新的.

你可以这样做

$ git checkout -b development
$ git push origin development
Run Code Online (Sandbox Code Playgroud)

推动新的分支


小智 6

您也可以使用 git flow。这将自动创建具有正确命名约定的分支,这是一种很好的做法。

git flow init
Run Code Online (Sandbox Code Playgroud)

并推

git push --set-upstream origin develop
Run Code Online (Sandbox Code Playgroud)


Kab*_*ard 5

这对我有用

git push origin development
Run Code Online (Sandbox Code Playgroud)