刚参加工作正在学习积累过程,分享一下自己学习到的一些知识(从事android底层驱动开发方向的工作)。
其中难免会出现有错误的地方,希望各位大佬指点。谢谢。个人微博:飘渺醉青山 可以一起交流学习共同进步。
在开发者我们经常需要新建一个或多个分支,来开发一个或多个新的功能,然后再新的分支完成开发并通过测试后,再将创建的分支合并到主线上。并且可以在分支和主线上来回切换,方便开发。下面就分享一下git中分支相关的使用方法。
创建一个新的分支
Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照。
创建一个 testing 分支, 你需要使用 git branch
命令:
$ git branch testing
Git 又是怎么知道当前在哪一个分支上呢? 也很简单,它有一个名为 HEAD 的特殊指针。在 Git 中,它是一个指针,指向当前所在的本地分支。
你可以简单地使用 git log
命令查看各个分支当前所指的对象。 提供这一功能的参数是 –decorate。
$ git log --oneline --decorate
分支切换
要切换到一个已存在的分支,你需要使用 git checkout 命令。 我们现在切换到新创建的 testing 分支去:
$ git checkout testing
想要新建一个分支并同时切换到那个分支上,你可以运行一个带有 -b 参数的 git checkout 命令:
$ git checkout -b iss53
Switched to a new branch "iss53"
分支合并
切换到所在的分支,进行修改或者开发并进行测试后就可以将分支合并到主线上。执行如下命令:
$ git checkout master
$ git merge hotfix
Updating f42c576..3a0874c
Fast-forward
index.html | 2 ++
1 file changed, 2 insertions(+)
删除分支
将新的分支合并到主线上后,需要将合并后的分支删除,可以通过执行git branch -d <branch>
。例如:
$ git branch -d iss53
git branch 命令不只是可以创建与删除分支。 如果不加任何参数运行它,会得到当前所有分支的一个列表:
$ git branch
iss53
* master
testing
注意 master 分支前的 字符:它代表现在检出的那一个分支(也就是说,当前 HEAD 指针所指向的分支)。 这意味着如果在这时候提交,master 分支将会随着新的工作向前移动。 如果需要查看每一个分支的最后一次提交,可以运行 git branch -v 命令*
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
–merged 与 –no-merged 这两个有用的选项可以过滤这个列表中已经合并或尚未合并到当前分支的分支。 如果要查看哪些分支已经合并到当前分支,可以运行 git branch –merged:
$ git branch --merged
iss53
* master