已经开始使用Git了,有些时候一般的问题只能Google就能找到答案,但是有些时候不能找到答案,因为遇到的问题都不知道该用什么关键字搜索。很多是在Git中文的QQ群中讨论出来的,把一些经验总结一下:
1.Git子模块
使用情况:例如Android系统代码和app之间可以使用这种submodule的方法来管理。
快速上手:
$ git submodule add url path/to/name
$ git submodule init
$ git submodule foreach git pull
其它情况下submodule不适用,可以用subtree来代替。
2.同步一个COMMIT
$ git cherry-pick xxx
可以同步一个commit到本分支
3.Git打TAG
打TAG也就是发布版本
$ git tag -a v1.2 -m "version 1.4"
$ git push --tags
如果还不能理解可以到这里看看是linus是怎么给linux内核打的TAG,TAG看起来像什么:https://github.com/torvalds/linux/releases
4.查看status详情
$ git add xxx
$ git diff --cached
这样可以在commit之前先看一下修改详情。
5.不产生无用的merge的同步
有这么一种情况,用一个分支专门同步代码提供商的代码的时候,如果一般的pull会不断的产生一个merge看起来会很烦,用下边的使用添加一个--rebase就不会产生无用的merge了
$ git pull --rebase origin master
6.关于stash
适用情况:做了修改后,还没有add commit等等后续工作,现在突然要切换分支做其它事情,默认情况下你在这个分支修改的代码会被带到切换过去的分支中。可以先把你修改的保存起来。这些修改可以再还原过来。
$ git stash -u
$ xxxx 随便你的操作
$ git stash pop
注意:-u是代表是也把添加的新文件(术语是未跟踪)也藏起来,一般是要有这个u的。
推荐阅读:
Fedora通过Http Proxy下载Git
在Ubuntu Server上安装Git
Linux下Git简单使用教程(以Android为例)