lazybios

Git回顾笔记(二)

继续上面那篇git笔记

git mv 命令

$ git mv hello.rb lib
使用git mv 相当与重命名,该指令执行后直接进入stage不许要再手动操作

.git 文件夹

.git/objects文件夹里面包含的是commit生成的sha1值的对应文件夹,文件名就是hash值的前两个字母
.git/config 文件中存放的是当前版本库中的配置文件,该文件与~/.gitconfig文件功效相同,只是作用域不同,在固定的版本中前者的优先级高于后者。会覆盖.gitconfig中的部分内容。
.git/refs/heads.git/refs/tags两个文件中分别存放的是分支和标签。

–amend 参数

这个我体会最深,我在维护blog的过程中发布后经常会有一些格式问题,以前我的做法是修改后再做一次commit,这样我的分支中就多了很多没有意义的fixedlog,导致整个主干分支变得特别丑陋。有了这个–amend参数,可以修改上一次commit的内容和commen t
$ git add hello.rb
$ git commit --amend -m "Add an author/email comment"
之后再通过git st查看的时候,就会发现之前的comment和内容都发生了改变,这对于偶尔的小bug修改特别有意义,当然这个效果也可一通过使用reset命令来实现,不过就是麻烦一些

histroy的–all参数

git hist --all 可以显示所有分支的log信息,而不局限于某个分支。

merge合并

某些合并后会发生冲突,这时需要手动去调整,下面冲突文件为例子

<<<<<<< HEAD
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
  please contact us at support@github.com
</div>
>>>>>>> iss53

这个冲突会新生成的文件,把冲突的两部分做了划分,=======作为分界线,HEAD表示当前分支,iss53表示另一个分支,手动处理选择正确的部分保留,同时删除<<<...>>>...以及===...部分,之后可以再次进行add,commit,这样就算完成了本次合并

微信关注「日拱一卒」公众号