git笔记--(4)

5.标签

发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。


1.建立标签
$ git tag <tagName> #给当前的HEAD指向内容打标签
$ git tag -a -m <commit_id> #-a指定标签名,-m 说明文字
$ git tag #查看标签
$ git show <tagname> #查看标签信息
$ git tag -s v0.2 -m "" commit_id #通过-s用私钥签名一个标签
##签名采用PGP签名,我没有成功,暂时搁置


2.删除本地标签
$ git tag -d <tag name>


3.推送标签
$ git push origin v1.0
$ git push origin --tags #推送全部标签


4.删除远程标签
two steps.
1.$ git tag -d v0.9 #删除本地标签
2.$ git push origin :refs/tags/v0.9 #推送删除


6.github使用

我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。
在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个bug,即使能改掉bug,也只能把diff文件用邮件发过去,很不方便。
但是在GitHub上,利用Git极其强大的克隆和分支功能,人们群众真正可以第一次自由参与各种开源项目了。
如何参与一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:

$ git clone git@github.com:michaelliao/bootstrap.git


如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。
如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。

  • 在GitHub上,可以任意Fork开源仓库;
  • 自己拥有Fork后的仓库的读写权限;
  • 可以推送pull request给官方仓库来贡献代码。

7.自定义git

例子:
$ git config --global color.ui true #让Git显示颜色,会让命令输出看起来更醒目

1.忽略特殊文件

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示“Untracked files ...”,有强迫症的童鞋心里肯定不爽。
好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore


忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
  4. 忽略某些文件时,需要编写.gitignore;
.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!


2.配置别名

$ git log -1 #查看最近1项的log,-2最近2项,以此类推
$ git config --global alias.st status #git st  ===>>  git status
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" # 非常好看


别名删除

目前,我还没接触到有相关的命令来删除别名。不过可以通过文件的方式删除,要知道别名保存的位置就需要知道这里的一些配置方式。git提供3级的配置方式。

    --global              use global config file
    --system              use system config file
    --local               use repository config file
    -f, --file <file>     use given config file
    --blob <blob-id>      read config from given blob object

(1) --global
在用户根目录下找一个隐藏文件.gitconfig里面有所有别名配置,删掉即可
(2) --local
在对应的repository目录下的.git/config里有相应配置,删除即可。
(3) --system
/etc/gitconfig文件 包含了适用于系统所有用户和所有库的值。


覆盖关系  2>1>3


检查你的设置(Checking Your Settings)
如果你想检查你的设置,你可以使用 git config --list 命令来列出Git可以在该处找到的所有的设置:
$ git config --list
$ git config -l


你可能会看到一个关键字出现多次,这是因为Git从不同的文件中(例如:/etc/gitconfig, ~/.gitconfig ,以及 ./.git/config)读取相同的关键字。 在这种情况下,对每个唯一的关键字,Git使用最后的那个值。 
你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 git config {key}:
  $ git config user.name


3.你的标识(Your Identity)

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:
  $ git config --global user.name ""
  $ git config --global user.email 

重申一遍,你只需要做一次这个设置。如果你传递了 --global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要--global选项。



要方便管理公钥,用Gitosis; https://github.com/res0nat0r/gitosis
要像SVN那样变态地控制权限,用Gitolite。 https://github.com/sitaramc/gitolite



这几次的笔记都是在学习廖雪峰老师的课程之后,摘录和总结的笔记。在这里十分感谢廖老师,这里是他的官方网站。很棒!
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Git的官方网站:http://git-scm.com
git cheat sheet 
http://www.git-tower.com/blog/assets/2013-05-22-git-cheat-sheet/cheat-sheet-large01.png
git中文网站
http://gitbook.liuhui998.com/index.html



发布了79 篇原创文章 · 获赞 8 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览