首页 > 代码库 > 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、

多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用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学习笔记(二)