一、查看分支
git branch 查看本地分支
git branch -a 查看所有分支列表,包括本地和远程,当前分支的前面用*标记,远程分支一般会用红色字体标记出来,带有remotes/origin/分支名
二、新建本地分支
git checkout -b 新分支名
git checkout master //切换到master分支
git merge hotfix //将hotfix分支上的修改合并到master分支上
执行该指令后,会在本地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样,这是正常的。创建成功后,将自动切换至新分支上。
三、创建本地分支指定远程分支
新建本地分支指定远程分支,该命令可以将远程git仓库里的指定分支拉取到本地
git checkout -b 本地分支名 origin/远程分支名
//获取远程
git fetch origin
//查看远程分支
git branch -r
//创建本地分支并关联
git checkout -b 本地分支 origin/远程分支
//已有本地分支创建关联
git branch --set-upstream-to origin/远程分支名 本地分支名
//拉取
git pull
四、分支合并
1、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master
2、当master代码改动了,需要更新开发分支(dev)上的代码
git checkout master
git pull
git checkout dev
git merge master
git push -u origin dev
五、git commit撤销
git reset --soft HEAD^
这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,您写的代码仍然保留。
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
六、git 删除远程分支
删除远程分支的命令
git push origin(远程仓库默认名) --delete new_a(分支名) 或者
简写 git push origin -d new_a
七、添加指定远程仓库到本地
git remote add liby(远程仓库名可自定义) http://gitlab.liby.com.cn/data-center/liby-sale-cockpit.git
获取远程仓库分支到本地分支(分支名不同需加上)
git fetch liby(远程仓库名) release(远程分支名):release(本地分支名)
git push liby (远程仓库名)release(本地分支名):release(远程分支名)
7.如果远程新建了一个分支,本地没有该分支。
可以利用 git checkout --track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name。
git checkout --track origin/branch_name
8.如果本地新建了一个分支 branch_name,但是在远程没有。
这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用 git push --set-upstream origin branch_name ,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步。
git push --set-upstream origin branch_name
9.a/b/c分支同时开发
a分支合并到master上线后,将master 合并到 b/c分支,需要合并两次,第一次为a分支改动文件,第二次为提交版本号,然后在b/c 提交push,然后继续开发,正常提交就可以了。
10.master和开发分支冲突
当前master分支冲突,可以在当前开发分支时候拉取master分支代码 pull master,然后可看到落后的master分支,以及冲突部分,然后解决冲突,提交当前分支内容,冲突解决。
11.删除分支
master合并到dev,然后dev合并到master,然后在仓库dev合并到master,就会删除其余分支