git,版本控制界的魔术师(1/18/2018)

不到一个月的时间,git入门的知识学了一次,并且写到了自己的博客上。 作为一个初学版本控制软件并且毫无从业经验的人来说,我学习的第一个版本控制软件就是git。所以很难将它和其他版本控制软件进行比较,git中一些思想也无法判断是不是Linus的独创,唯一能做的就是就事论事,仅仅从git本身来说。 git给我最深的印象,就是分支的操作,这也是我叫它魔术师的原因。 如果要我处理分支,那我肯定是会把文件拷贝一份,然后在复件上进行新的分支操作;据我所知,确实有一些版本控制软件是这样做的。但是git不是!git的分支其实就是… 阅读全文

git标签

打标签 git支持两种类型的标签:轻量标签与附注标签。 轻量标签是一个指向特定提交的引用,但是它不可被移动。 附注标签是一个在git数据库中的完整对象,它包含打标签者的名字、电子邮件地址、日期时间,并且是可以被校验的。 打一个轻量标签很容易,使用git tag <tagname>即可: $ git tag v0.0 git会给当前分支最近的提交对象打上v0.0标签。 如果要给其他的提交对… 阅读全文

git变基

我们已经使用过git的合并(merge)功能,与之功能类似的是rebase(变基)。 开始前请记住:不要对在你的仓库外有副本的分支进行变基。 变基的实质是丢弃一些现有的提交,并且新建一些内容一样但实际上不同的提交。所以如果你的分支上的内容已经被共享,进行变基之后就会有一部分现有提交被丢弃,这会给其他用户带来麻烦与困惑。 合并是将两个分支的最新快照以及共同祖先… 阅读全文

git远程分支

查看远程分支 现在我们已经有一些和远程分支打交道的经验了,比如曾经使用了git push和git pull。 怎么查看远程分支呢? 使用git branch可以查看本地的分支,-v选项可以显示更多的信息,-vv选项可以查看更详细的信息: git branch * master git branch -v * master 11f0f7a [ahead 8] merge iss1 $ git branch -vv * master 11f0f7a [origin/master:… 阅读全文

git分支

什么是git分支? 什么是git分支?首先让我们回顾一下提交对象,一个提交对象(commit objects)包括: 一系列文件在某个时间的快照。 一系列指向父提交对象的索引。 一个SHA-1名字,这个名字40个字符长,是独一无二的。 作者的姓名和邮箱,以及提交时对提交的描述。 事实上,“一系列文件在某个时间的快照”并不是直接存在于提交对象。在git中… 阅读全文

开始使用GitHub

同步到远程库 现在我们已经有了一个本地的git管理的项目。git是一个分布式项目管理系统,每一份项目文件中都包含该项目的几乎所有文件,所以其实任何参与项目的人都可以做服务器。现在比较流行的git项目托管网站是GitHub,这里就用GitHub来说明。 首先需要注册一个GitHub账号,然后新建一个git仓库。 按照上图完成后,我们已经有了一个… 阅读全文

git文件的操作

什么是git仓库? 让我们来重温一下三个区域的概念: git有三个工作区域:工作目录(Working Directory),暂存区(Staging Area)和git仓库(.git directory)(Repository)。 在每个git项目的根目录下,都会有一个.git目录,这个目录就是git仓库。暂存区是git仓库中的一个文件(index文件),它保存着下次要提交到git仓库的文件列表。 作为分布式版本控制系统,git中的… 阅读全文