《Pro Git》之学习笔记

在看《Pro Git》这本书以深入学习一下git,写一下学习笔记

1. 初始化一个项目后,默认看不到.git子目录,打开一个终端输入一下命令即可

$ defaults write com.apple.finder AppleShowAllFiles TRUE //显示.git目录
$ defaults write com.apple.finder AppleShowAllFiles FALSE //隐藏.git目录
$ killall Finder //重启Finder

2. 克隆项目时自定义本地仓库名称 ,如下: 

$ git clone https://github.com/libgit2/libgit2  mylibgit

3. 工作目录下的每一个文件都不乎这状态:已跟踪 未跟踪。 已文件那些了 版本控制文件,在上一中有它记录,在工作一时间后, 它状态可能是未改,已改或已放暂存区。简而之,已文件就是 Git 已经知文件。 工作目录文件的其它所有文件于未文件,它们既在于上记录中,也没有放 入暂存区。 初次克隆某仓库的时,工作目中的所有文件于已文件,并处于未状态,因为 Git 刚刚检出了它而你编辑过它们。

 4. git add 命令使用文件或目作为参数是目录,该命令递归该目下的所有文件

5. 状态预览

git status 命令的,但其用有些繁琐Git 有一个选项可以帮缩短状态命令的出,这样可 以以简的方式查看更改。 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种 格式更为紧凑出。

加的未 文件 前面有 ?? ,新 加到 暂存 区中的 文件 前面有 A 改过的 文件 前面有 M 输 出中有两栏 左栏 暂存 区的 状态 右栏 了工作区的 状态 如,上面的 状态报告 示: README 文件在工作区已修改但 暂存 lib/simplegit.rb 文件 暂存 Rakefile 文件 暂存 又 作了修 改,因此该 文件 改中 有已 暂存 部分 有未 暂存 部分

6. 文件 .gitignore 的格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

 GitHub 有一个对数种项目及语言.gitignore 文件可以https://github.com/github/gitignore 到它。

7.  git diff 本身只显示尚未暂存的改动

8. 可以使用 git difftool --tool-help 命令来看你系统支持哪Git Diff

9. 跳过使用暂存区域

        尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。 Git 提供了一个跳过使用暂 存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

10. 如果之前改过或已经暂存区的文件则必须使用 强制选项 -f, 即: git rm -f

11.文件从 Git 仓库亦即暂存区域),但希望在当前工作目录 中。 换句话说,你想文件,但是并不Git 继续

$ git rm --cached README

11. 文件重命名

$ git mv file_from file_to

12. 查看提交历史中的每次提交的简略统计信息

$ git log --stat

13. git log  --pretty 可以使用不同于默式的方式展提交历史。由参数:oneline、short、full、fuller、format

$ git log --pretty=oneline

git log --pretty=format 可以定制记录的显示格式。 这样的输出对后期提取分析格外有用

$ git log --pretty=format:"%h - %an, %ar : %s"
ca82a6d - Scott Chacon, 6 years ago : changed the version number
085bb3b - Scott Chacon, 6 years ago : removed unnecessary test
a11bef0 - Scott Chacon, 6 years ago : first commit

14. 撤销操作,提交完了发现了几个文件没有加,或者提交了。 此时,可以运行--amend 选项的提交命令来重新提交

$ git commit --amend

例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

有一个提交——第二次提交将代第一次提交结果

15. 取消暂存

 git reset HEAD <file>

16. 撤销对文件的修改

git checkout -- <file>

17. 远程仓库

  • 远程仓库可以在你的本地主机上,词语“远程必表示仓库在网网上的其它置,只是它在处。
  • 添加远程仓库: git remote add <shortname> <url> 
  • 重命名: git remote rename pb paul
  • 移除:  git remote remove  <shortname>  git remote rm <shortname>

18. 打标签,

  • 按照通配符列出标签需要 -l --list 选项
$ git tag -l "v1.8.5*"
  • Git 支持轻量lightweight)与annotated)。
  • 轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。而附注标签是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件 地址、日期时间, 此外还有一个标签信息,并且可以使用 GNU Privacy Guard (GPG)签名并验证。 通常会建议创建附注标签,这样你可以拥有以上所有信息。
  • 创建附注标签:   git tag -a v1.4  -m "my version 1.4"
  • 查看标签信息和与之对应的提交信息: git show <tagname>
  • 轻量标签本质上是将提交校验和存储到一个文件中——没有保存
    任何其他信息。 创建轻量标签,不需要使用 -a、-s 或 -m 选项,只需要提供标签名字
  • 后期补标签,在命令的末尾指定提交的校验和即可,如:
    $ git tag -a v1.2 9fceb02
  • 共享标签: 默认情况下,git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后必须显式地推送标签到共享服务器上。 这个过程就像共享远程分支一样——可以运行 git push origin <tagname>。如果想要一次性推送很多标签,也可以使用带有 --tags 选项的 git push 命令。 这将会把所有不在远程仓库服务器上的标签全部传送到那里
    $ git push origin --tags

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值