一,git切换到指定分支
使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况,操作如下
1,查看远程所有分支
git branch -a
git branch
不带参数,列出本地已经存在的分支,并且在当前分支的前面用*
标记,加上-a
参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来
* dev master remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/release/caigou_v1.0
2,git切换分支之前要更新所有分支
git fetch --all
3,切换分支,git checkout 分支名称
git checkout dev-new(分支名)
上面切换的是本地分支
参考:https://blog.csdn.net/astonishqft/article/details/83029490
https://www.cnblogs.com/xuzimian/p/10748522.html
二,git拉取远程分支并切换到该分支
执行前都需要执行git fetch来同步远程仓库
1,git fetch 获取远程所有分支
2,git branch -r 可以看到所有远程分支,假设有一个分支叫origin/mybranch
3,git checkout mybranch即可,会在本地新建一个同名分支,并与该远程分支关联
三,git新建分支与合并
1,新建分支
在 master
分支上新建一个分支iss53来修改问题,并同时切换到那个分支上,你可以运行一个带有 -b
参数的 git checkout
命令:
$ git checkout -b iss53 Switched to a new branch "iss53"
它是下面两条命令的简写:
$ git branch iss53
$ git checkout iss53
2,分支的合并
在iss53
分支中合并master分支,可以使用 git merge master 命令将 master
分支合并入 iss53
分支
假设你已经修正了 #53 问题,并且打算将你的工作合并入 master
分支,你需要合并 iss53
分支到 master
分支,你只需要切到想合并的分支,然后运行 git merge
命令:
$ git checkout master Switched to branch 'master' $ git merge iss53 Merge made by the 'recursive' strategy.
3,删除分支
既然你的修改已经合并进来了,就不再需要 iss53
分支了。 现在你可以在任务追踪系统中关闭此项任务,并删除这个分支。
$ git branch -d iss53
4,遇到冲突时的分支合并
4.1,你可以在合并冲突后的任意时刻使用 git status
命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件:
$ git status
任何因包含合并冲突而有待解决的文件,都会以未合并状态标识出来。
4.2,在你解决了所有文件里的冲突之后,使用 git add
暂存命令来将其标记为冲突已解决。
4.3,如果你想使用图形化工具来解决冲突,你可以运行 git mergetool
,该命令会为你启动一个合适的可视化合并工具:
$ git mergetool
4.4,如果你对结果感到满意,并且确定之前有冲突的的文件都已经暂存了,这时你可以输入 git commit
来完成合并提交。
参考:https://git-scm.com/book/zh/v2/Git