Git使用笔记三】的更多相关文章

场景:开源社区提交代码每个人每一个MR只有两个commits,一个是merge前的,一个是merge时候的.因为他们不过是把自己在同一个PR上面提交的commits全部压缩成了一个而已.这个在git上面叫squash,通常他们用的是rebase. 另外一种方法同样可以压缩commits,而且比squash更安全,比rebase更简单. 代码编辑 代码跳转: Ctrl + 左键 或者 Ctrl + B,可以跳转到函数或者变量的声明位置 调用位置: Alt + F7,查找调用者 自动补全: 最好是修…
简单介绍 之前说过,每次修改之后,Git 并不是保存这些修改之后的差异变化,实际上就像一个照相机一样,将修改后的文件拍下作为文件快照,记录在一个微型的文件系统中.在 Git 中提交时,会保存一个提交对象,这个对象包含一个暂存内容快照的指针.而 Git 中的分支其本质上是一个指向 commit 对象的可变的指针,使用 master 作为分支的默认名字,通常指向的是最新的一次提交. 每次的提交,Git 把他们穿起来连成一条线,而主分支master就在这条线上随着提交测更新移动,而 HEAD 指向ma…
Git提交相关内容 在Git提交时,会保存一个提交对象,该对象包括一个指向暂存区内容快照的指针,包括本次提交作者等相关附属信息,包括零个或多个指向该提交对象的父对象指针:首次提交时是没有祖先,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先.在使用git commit新建一个提交对象前.Git会先计算每一个子文件夹的校验和.然后在Git仓库中将这些文件夹保存为树(tree)对象.之后Git创建的提交对象,除了包括相关提交信息.还包括指向这个树对象(项目根文件夹)的指针,如此.它就能…
1.每个分支的历史版本维护信息位置是.git/logs/refs/heads/master,这个位置的信息是文本文件,不是引用. harvey@harvey-Virtual-Machine:~/demo4$ cat .git/logs/refs/heads/master #查看这个位置的信息,发现最上面的第一行父节点的id 当前节点的id 后面的就是用户名和提交的评论 9aa4a88d227ece5d9079776991ded74e2e577bf8 zhanghaiyu <zhanghaiyu@…
1.管理修改 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的是修改,而不是文件呢?我们还是做实验. 第一步,对readme.txt做一个修改,比如加一行内容: $ cat readme.txt Git is a distributed version control system. Git is free software distributed un…
此步之前的工作和示例请参考以下帖子: git使用笔记(一)Git的下载与配置 git使用笔记(二) 如何把GitHub上项目同步到本地 ------------------------------------------------------------ 以下是涉及到的命令及关系:…
Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git add, git commit, git push就已经可以开始用了. 设置(初始化)Git 版本库(Repository) Git版本库的初始化有2种方式,一种是把现有的一个项目或目录加入版本库,一种是从服务器上拷贝一个现有的版本库. 将现有目录或项目加入版本库: git init 在需要加入版本库的…
###举例仓库 仓库地址A:git@gitlab.54php.cn:guowei/demos.git 仓库地址B:git@gitlab.54php.cn:infra/demos.git 开发人员仓库C:git@gitlab.54php.cn:lurenjia/demos.git ###多分支开发 背景以demos为例子,主分支是仓库B,开发分支是仓库A,然后每个开发人员从仓库A clone,每周会在仓库A切一个新分支(例如43周叫做demos_201443) git clone A 将远程的仓库…
一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了.所有配置文件可以直接在线浏览:https://github.com/github/gitignore .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理! 二.配置别名 $ git config --global al…
<Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和分支 git提交时会将暂存文件的内容,暂存的目录结构,提交对象,含附注标签对象都以包含信息头的二进制文件形式存储到版本库中(.git/objects目录),存储的对象以其自身SHA1值作为唯一标识,SHA1前两位为存储对象所在目录名,SHA1后38位为存储对象的文件名.存储的数据对象类型有: blob(文件内…