首页 > 代码库 > Git学习笔记(二)
Git学习笔记(二)
1、创建并切换到分支
$ git checkout -b dev//等同于$ git branch dev$ git checkout dev
查看分支
$ git branch
然后就可以在分支上add和commit
切换回master分支
$ git checkout master
合并后可以删除分支
$ git merge dev //合并$ git branch -d dev //删除
2、合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
$ git merge --no-ff -m "merge with no-ff" dev
实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
3、bug分支
Git提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
$ git stash
修复bug后恢复并删除stash
$ git stash pop
查看stash
$ git stash list
4、新功能 feature分支
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D name强行删除。
5、查看远程库信息
$ git remote
更相信的信息:
$ git remote -v
6、
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
7、
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
8、创建标签
$ git tag v1.0
查看标签
$ git tag
对某一次commit打标签
$ git tag v0.9 6224937
说明文字
$ git show v0.1
删除标签
$ git tag -d v0.1
推送远程
$ git push origin v1.0$ git push origin --tags //一次性推送全部尚未推送到远程的本地标签
删除远程标签
$ git tag -d v0.9 //先删除本地$ git push origin :refs/tags/v0.9 //再删除远程
9、克隆远程库
git clone git@github.com:michaelliao/bootstrap.git
Git学习笔记(二)