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命令的使用)

时间: 2024-11-05 15:52:08

Git权威指南 读笔(4)的相关文章

Git权威指南 读笔(3)

第九章 恢复进度: $ git stash list 显示存储的工作进度列表. $ git stash 保存当前的工作进度,分别对暂存区和工作区的状态进行保存. $ git stash pop [--index] [<stash>] 恢复保存的工作进度,并将恢复的工作进度从存储的工作进度列表中删除. $ git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [<message>]] 第一条git stash的完整

Git权威指南 读笔(1)

第四章 Git初始化: 设置Git当前用户和邮件地址: $ git config --global user.name $ git config --global user.email 设置Git命令别名: $ git config --global alias.ci commit 在windows系统中进入J:\gits\目录,可以先输入mount命令,查看各盘符在Cygwin下的驱动映射地址 $ cd /cygdrive/j/gits/ 创建文件夹:$ mkdir demo  创建文件: $

Git权威指南 读笔(2)

第七章 Git重置: Git提供了一个挽救机制,通过.git/logs目录下日志文件记录了分支的变更. master分支的日志文件.git/logs/refs/heads/master,显示最后5行: $ tail -5 .git/logs/refs/heads/master 也可以用 git reflog 命令对这个文件进行操作. 重置命令: $ git reset [-q] [<commit>] [--] <paths>... 不会重置引用,不会改变工作区,而是用指定提交状态(

Git权威指南学习笔记(一)Git初始化

1.在Git中配置用户名和邮件地址 $ git config --global user.name "Jymn_Chen" $ git config --global user.email "[email protected]" 注意把用户名和邮件地址替换成你自己的资料. 在这里的参数global表示配置的作用范围是当前用户,如果将参数改为system,那么配置的作用范围是系统中的所有用户. 2.创建版本库 新建一个目录并cd到目录中,执行以下命令: $ git i

Git权威指南学习笔记(二)Git暂存区

如下图所示: 左侧为工作区,是我们的工作目录. 右侧为版本库,其中: index标记的是暂存区(stage),所处目录为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的目录树.HEAD指向master分支. objects标记的是Git的对象库,所处目录为.git/objects,文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们可以清晰地看出add,commit等命令的转化关系.下面通过git diff和git status两条命

读书 Git权威指南

一.中文文件名不能正确显示,而是现实八进制的字符编码,怎么解决? $ git status "\346\227\245\345\277\227.txt" 解决方式: git config --global core.quotepath false $ git status 日志.txt 二..git目录是什么? 是git版本库(仓库,repository),也被称为工作区. 三.工作区.暂存区.版本库的区别 四.命令 config命令 显示工作区根目录: git rev-parse -

《Git权威指南》读书笔记

书中提到Andrew Tridgell,然后说是大名鼎鼎的Samba的作者,这两个名字,一个也没听说过.经查询,是UNIX系列操作系统上的一个软件,如下: Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文

Git使用指南

不都是SCM代码管理嘛,有很大区别么?很多svn老鸟都是抱着这样的心态去学习git,然后无一幸免地陷入"查阅过很多资料,依然掌握不好"的困境,至少我们团队是这样的. 网上的资料确实已经很多了,却没有把整个知识结构串起来.通读<git权威指南>是可行的,只是大家都急着用,没那耐性.我这里熬一碗鸡汤,整理供大家享用. 一.安装 服务器端不展开,因为主要面向搬砖的码农. 客户端可参见大神 廖雪峰 的Git教程-安装git 需要特别说明的是,在windows中,msysgit才是真

《Android编程权威指南》-读书笔记(三)Git初探

<Android编程权威指南>-读书笔记(三)Git初探 版本控制-Git 为什么要使用版本控制 什么是版本控制?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制. 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能).采用版本控制系统(VCS)是个明智的选择.有了它你就