Git权威指南 读笔(4)

第12章 改变历史:

  $ git commit --amend -m "Remove hello.h, which is useless." 修改提交说明

  $ git log --decorate : 参数decorate表示显示提交所属里程碑tag

  $ git cherry-pick [commit] : 拣选指令

  $ git cherry-pick -C C : 重用C提交的提交说明

  $ git rebase --onto <newbase> <since> <till>: 对提交执行变基操作,即可以实现将指定范围的提交“嫁接”到另外一个提交至上。

    变基操作的过程:

    (1)首先执行git checkout切换到<till>

    (2)将<since>..<till>所标识的提交范围写到一个临时文件中

    (3)将当前分支强制重置(git reset --hard)到<newbase>

    (4)从保存在临时文件中的提交列表中,讲提交逐一按顺序重新提交到重置之后的分支上

    (5)~(6)...

  $ git tag -d <commit>: 删除创建的里程碑

  $ git rebase -i <commit>: 进入交互界面通过编辑器vi修改变基操作内容

  由里程碑A对应的提交构造出一个根提交的两种方法:

    (1)$ echo "Commit from tree of tag A." | git commit-tree A^{tree}

    (2)$ git cat-file commit A^0 | sed -e '/^parent/ d' > tmpfile

        $ git hash-object -t commit -w -- tmpfile

  $ git revert head : 反向提交命令

 

第13章 Git克隆:

  用法1:

  $ git clone <repository> <directory>

    为了实现同步,需要进入到备份版本库中,执行git pull命令

    通过查看配置文件(包含对上游版本库的注册信息)

    $ git remote -v

  用法2:

  $ git clone --bare <repository> <directory.git>

    $ git push /path/to/repos/demo.git : 推送

  用法3:

  $ git clone --mirror <repository> <directory.git>

    对于使用$git init命令的空的裸版本库,第一次推送需要指定引用:

      $ git push /path/to/repos/demo-init.git master:master

  (一些remote命令的使用)

 

posted @ 2015-02-09 17:05  nuaalida  阅读(141)  评论(0编辑  收藏  举报