Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Git 分支命令整理 #22

Open
cobish opened this issue Feb 8, 2017 · 0 comments
Open

Git 分支命令整理 #22

cobish opened this issue Feb 8, 2017 · 0 comments

Comments

@cobish
Copy link
Owner

cobish commented Feb 8, 2017

创建分支

Git 可以在本地任意并很快地创建分支,它实际上就在当前分支的基础上创建了一个新的指针,工作区的文件都没有任何的变化。

创建一条分支 dev,然后切换到 dev 分支的命令如下:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout 命令加上 -b 参数表示创建并切换分支,它相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

查看分支

一旦创建的分支多了起来,一时忘记了分支的名字,可以使用以下命令查看本地项目的所有分支:

$ git branch
  master
* dev

当前所在的分支前面会标有一个 * 号,如果想顺便把远程的所有分支列出来,加上参数 -a

$ git branch -a
  master
* dev
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

推送分支

刚刚创建的 dev 分支要推送到远程上,可以使用 push 命令:

$ git push origin dev

再次查看远程分支,就会发现多了一条 origin/dev 的远程分支:

$ git branch -a
  master
* dev
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/dev

切换分支

不同的分支代表着项目不同的功能或模块的开发。 dev 分支上的模块开发完成后,这时想切换到 master 去开发另一个模块,则可以使用切换分支的命令:

$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

还有一种情况,

合并分支

开发完毕之后,这时 master 分支上是没有 dev 分支上的模块的。如果想要 master 分支上也有 dev 分支上的模块的话,则需要将 dev 合并到 master。首先得确保当前的分支是 master ,然后执行合并命令:

$ git merge dev

合并完成,如果有冲突的话则手动修改代码解决冲突即可。

删除分支

最后,master 分支上有自己的模块和从 dev 分支那合并过来的模块,这时如果 dev 分支不再维护可以把它进行删除。使用 -d 参数表示删除分支:

$ git branch -d dev

有时候遇到了删除失败的情况,那可能是当前分支的模块没有被合并到其他分支上,删除后可能该模块可能就没有了。如果这模块不想要的话,可以使用 -D 参数进行强制删除:

$ git branch -D dev

前面的命令只删除了本地的 dev 分支,远程上的 origin/dev 分支还是存在的。如果也想顺便把它给删除了,则可以使用以下命令(注意:命令中的冒号前是有一个空格的):

git push origin :dev
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant