感谢支持
我们一直在努力

Git深度使用经验总结

已经开始使用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的。

接下来请看第2页精彩内容: http://www.linuxidc.com/Linux/2013-10/91992p2.htm

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

推荐阅读

Fedora通过Http Proxy下载Git http://www.linuxidc.com/Linux/2009-12/23170.htm

在Ubuntu Server上安装Git http://www.linuxidc.com/Linux/2009-06/20421.htm

服务器端Git仓库的创建(Ubuntu) http://www.linuxidc.com/Linux/2011-02/32542.htm

Linux下Git简单使用教程(以Android为例) http://www.linuxidc.com/Linux/2010-11/29883.htm

Git权威指南 PDF高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm

7.恢复一个COMMIT

如果一个COMMIT你不想要了,想要去除,可以考虑使用以下的方法;

$ git revert xxxx

这个就可以去掉这个COMMIT的改动,这个是明式的去掉,如果你又后悔了,还可以再次恢复。

8.安装最新Git版本

能轻易安装的一般不会是最新的,用apt-get install便是如此。下面用离线的方式安装Git。

a先到https://github.com/git/git/releases看最新版本,然后复制链接。

$ wget xxxx(链接地址)

$ tar xvzf git-xxx.tar.gz

$ cd git-xxx

$ make prefix=/opt/git all

$ make prefix=/opt/git install

$ 添加/opt/git/bin到环境变量中 /etc/environment中,或者其它。

9.安装subtree

$ git clone https://github.com/apenwarr/git-subtree

$ cp git-subtree/git-subtree.sh /opt/git/bin/git-subtree

10.Git之本地忽略

这个分同种情况:a是本地永久忽略,效果的gitignore一样,只不过不适于写到gitignore中而已,可以自己建立一个本地独享的gitignore,然后git config –global core.excludesfile 文件的绝对路径,也可以直接将本地要忽略的文件添加到.git/info/exclude中。不过上述都是针对没有跟踪的文件来说的,如果文件已经被跟踪了你如果在本地想要忽略它的改动,就不能使用以上的方法了。这正情况b。通俗地讲比如一个编译Android的脚本在其它电脑上都是使用的-j32来编译的,但是你的电脑配置没有别人的好,不能开到-j32,但是这个脚本是已经跟踪过的,你修改了就会在每次的git status中看到。对于这种情况Git有一个忽略改动的方法:

$ git update-index –assume-unchanged /path/to/file

之后你在本地修改/path/to/file这个文件,Git也不管它了。就实现了本地忽略。

11.Gitlab用户头像的问题

如果装的Git服务器是GitLab的话,是可以使用用户头像的,GitLab管理头像的一般方法是用gravatar,这一点和github一样,是关联email地址的,先在上边注册一个账户,上传一个头像并关联某一个邮箱,Gitlab或者Github会自动去gravatar上拉取你的个人头像。

赞(0) 打赏
转载请注明出处:服务器评测 » Git深度使用经验总结
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏