分支管理,远程分支管理,标签管理,git别名
温馨提示:这篇文章已超过831天没有更新,请注意相关的内容是否还可用!
分支管理
1、查看分支
[root@o20171014056080 code]# git branch* master
2、创建分支
[root@o20171014056080 code]# git branch 分支名
3、切换到ahaoyw分支下
[root@o20171014056080 code]# git checkout ahaoyw 切换到ahaoyw分支下 Switched to branch 'ahaoyw' [root@o20171014056080 code]# git branch * ahaoyw master
不同分支内容不互通
4、可合并分支
[root@o20171014056080 code]# git checkout master [root@o20171014056080 code]# git merge ahaoyw Already up-to-date.
5、测试
在ahaoyw分支里面创建2.txt并写入内容然后提交 [root@o20171014056080 code]# echo “121212121” >>2.txt [root@o20171014056080 code]# git add 2.txt [root@o20171014056080 code]# git commit -m "ch 2.txt" [ahaoyw 67c6413] ch 2.txt 1 file changed, 1 insertion(+) create mode 100644 2.txt 然后切换到master分支下载做同样的操作写入不同的内容 [root@o20171014056080 code]# git checkout master Switched to branch 'master' [root@o20171014056080 code]# echo “121212121\n45656565” >>2.txt [root@o20171014056080 code]# git add 2.txt [root@o20171014056080 code]# git commit -m "ch 2.txt" [master 86d9a42] ch 2.txt 1 file changed, 2 insertions(+) create mode 100644 2.txt [root@o20171014056080 code]# git merge ahaoyw Auto-merging 2.txt CONFLICT (add/add): Merge conflict in 2.txt Automatic merge failed; fix conflicts and then commit the result.
如果master分支和ahaoyw分支都对2.txt进行了编辑,当合并时会提示冲突,需要先解决冲突才可以继续合并
万一master分支更改的内容是我们想要的呢? 可以编辑2.txt内容,改为想要的,然后提交。切换到ahaoyw分支,然后合并master分支到ahaoyw分支即可(倒着合并)。合并分支有一个原则,那就是要把最新的分支合并到旧的分支。也就是说merge后面跟的分支名字一定是最新的分支
6、删除分支如果分支没有合并,删除之前会提示
[root@o20171014056080 code]# git branch -d ahaoyw error: The branch 'ahaoyw' is not fully merged. If you are sure you want to delete it, run 'git branch -D ahaoyw'.
强制删除
[root@o20171014056080 code]# git branch -D ahaoyw //强制删除 Deleted branch ahaoyw (was 67c6413).
7、使用分支的原则
对于分支的应用,建议大家以这样的原则来:
master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上。
创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master
开发人员应该在dev的基础上再分支成个人分支,个人分支(在自己pc上)里面开发代码,然后合并到dev分支
dev分支合并bob分支的命令是:
git checkout dev //先切换到dev分支,然后
git merge bob
远程分支管理
本地新建的分支如果不推送到远程,对其他人就是不可见的
1、查看远程所有的分支
[root@o20171014056080 code]# git ls-remote origin ebe4480b90a6b91033ab1185ccef2f131a73c216 HEAD ebe4480b90a6b91033ab1185ccef2f131a73c216 refs/heads/dev ebe4480b90a6b91033ab1185ccef2f131a73c216 refs/heads/master
对于git push分支分两种情况
当本地分支和远程分支一致时
git push会把所有本地分支的变更一同推送到远程,如果想只推送一个分支,使用git push origin branch-name
当本地分支比远程分支多,默认git push 只推送本地和远程一致的分支,想要把多出来的本地分支推送到远程时,使用git push origin branch-name 如果推送失败,先用git pull抓取远程的新提交
git clone的时候默认只把master分支克隆下来,如果想把所有分支都克隆下来,需要手动创建,在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称要一致
标签管理
标签类似于快照功能,可以给版本库打一个标签,记录某个时刻库的状态。也可以随时恢复到该状态
标签类似于快照功能,可以给版本库打一个标签,记录某个时刻库的状态。也可以随时恢复到该状态。 git checkout master 先切到master分支上 git tag v1.0 给master打一个标签v1.0 git show v1.0 查看标签信息 git tag 可以查看所有的标签 tag是针对commit来打标签的,所以可以针对历史的commit来打tag git log --pretty=oneline --abbrev-commit //先查看历史的commit git tag v0.9 46d3c1a //针对历史commit打标签 git tag -a v0.8 -m "tag just v1.1 and so on" 5aacaf4 //可以对标签进行描述 git tag -d v0.8 //删除标签 git push origin v1.0 //推送指定标签到远程 git push --tag origin //推送所有标签 如果本地删除了一个标签,远程也想要删除需要这样操作: git tag v1.0 -d //删除本地标签 git push origin :refs/tags/v1.0 //删除远程标签
git别名
git commit 这个命令是不是有点长? 用别名可以提高我们的工作效率 git config --global alias.ci commit git config --global alias.co checkout git config --global alias.br branch 查看git别名使用命令 git config --list |grep alias 查询log小技巧:(带颜色) git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 取消别名 git config --global --unset alias.br