来源: http://blog.csdn.net/arkblue/article/details/9568249/
1 查看远程分支
- $ git branch -a
- * br-2.1.2.2
- master
- remotes/origin/HEAD -> origin/master
- remotes/origin/br-2.1.2.1
- remotes/origin/br-2.1.2.2
- remotes/origin/br-2.1.3
- remotes/origin/master
2 查看本地分支
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git branch
- * br-2.1.2.2
- master
3 创建分支
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git branch test
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git branch
- * br-2.1.2.2
- master
- test
线面是把分支推到远程分支
- $ git push origin test
4 切换分支到test
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git branch
- * br-2.1.2.2
- master
- test
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git checkout test
- M jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java
- M jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java
- Switched to branch 'test'
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)
- $ git branch
- br-2.1.2.2
- master
- * test
M 表示cong 原来分支(上一次修改没有提交br-2.1.2.2)带过来的修改
5 删除本地分支 git branch -d xxxxx
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)
- $ git checkout br-2.1.2.2
- M jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java
- M jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java
- Switched to branch 'br-2.1.2.2'
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git br
- * br-2.1.2.2
- master
- test
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git br -d test
- Deleted branch test (was 17d28d9).
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
- $ git br
- * br-2.1.2.2
- master
6 查看本地和远程分支 -a。前面带*号的代表你当前工作目录所处的分支
- remotes/origin/HEAD -> origin/master #啥意思呢?
”在clone完成之后,Git 会自动为你将此远程仓库命名为origin(origin只相当于一个别名,运行git remote –v或者查看.git/config可以看到origin的含义),并下载其中所有的数据,建立一个指向它的master 分支的指针,我们用(远程仓库名)/(分支名) 这样的形式表示远程分支,所以origin/master指向的是一个remote branch(从那个branch我们clone数据到本地)“
这个是执行 git remote -v 的结果,看出来origin其实就是远程的git地址的一个别名。
- $ git remote -v
- origin [email protected]:middleware/jingwei.git (fetch)
- origin [email protected]:middleware/jingwei.git (push)
- shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)
- $ git branch -a
- br-2.1.2.2
- master
- * test
- remotes/origin/HEAD -> origin/master
- remotes/origin/br-2.1.2.1
- remotes/origin/br-2.1.2.2
- remotes/origin/br-2.1.3
- remotes/origin/master
7 合并分支
//首先切换的master分支(把代码和并到master)
git checkout master。
//然后执行合并操作(把develop上的代码合并到master)
git merge develop。
/*如果有冲突,会提示你,调用git status查看冲突文件。解决冲突,然后调用git add或git rm将解决后的文件暂存。 所有冲突解决后,git commit 提交更改。*/
8 分支衍合
<span style="font-size:18px;">/*分支衍合和分支合并的差别在于,分支衍合不会保留合并的日志,不留痕迹,而 分支合并则会保留合并的日志。 要将开发中的分支(develop),衍合到稳定分支(master)。 */
//首先切换的master分支
git checkout master。
//然后执行衍和操作
git rebase develop。
/*如果有冲突,会提示你,调用git status查看冲突文件。解决冲突,然后调用git add或git rm将解决后的文件暂存。 所有冲突解决后,git rebase --continue 提交更改。</span>*/
9 删除远程版本
- git push origin :<分支名>
- git branch -d <分支名> //删除分支
- git branch -D <分支名> //如果分支没有合并到主分支会报错, 使用 -D 强制删除
git push origin :branch-name
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。