创建分支&转换分支
$ git checkout -b newbranch
等同于
$ git branch newbranch
$ git checkout newbranch
git checkout xxx转换分支
git branch xxx创建分支
git branch命令查看当前分支
合并分支
$ git checkout master
$ git merge hotfix
移动到主分支,把主分支合并到新写的hotfix中
image
image
遇到冲突时的分支合并
Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。可以看到此文件包含类似下面这样的部分:
<<<<<<< HEAD
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53
手动选择保留什么
git add将把它们标记为已解决状态
git commit提交
删除分支
$ git branch -d hotfix //想象成删除指针
远程仓库
git remote或者git remote -v显示更详细的信息
推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:
$ git push origin master
$ git push origin dev
- master分支是主分支,因此要时刻与远程同步;
- dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
- bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
- feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
现在,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:
git clone git@github.com:michaelliao/learngit.git
git checkout -b dev origin/dev
……
git push origin dev
更多
临时储存工作区
git stash可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
工作现场还在,Git把stash内容存在某个地方了git stash list,但是需要恢复一下,有两个办法:
一是用git stash apply stash@{0}恢复,但是恢复后,stash内容并不删除,你需要用git stash drop stash@{0}来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
修改master上bug的流程
git checkout master
git checkout -b issue-101
git add xxx
git commit -m "fix bug 101"
git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101
git branch -d issue-101
git-br-policy
网友评论