美文网首页
git学习笔记(一)

git学习笔记(一)

作者: 单纯的土豆 | 来源:发表于2016-02-24 17:29 被阅读54次

1.集中式版本控制系统vs分布式版本控制系统

集中式版本控制系统:版本库集中存放在中央服务器。使用时必须先从中央服务器取得最新版本,工作完后在推送给中央服务器。缺点是必须联网才能工作,中央服务器要是出了问题所有人无法工作。常见的集中式版本控制系统有CVS和SVN.

分布式版本控制系统:没有“中央服务器”,每个电脑上都是一个完整的版本库。工作时不需要联网,安全性高。常见的分布式版本控制系统有Git.

2.什么是版本库呢?

版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

建议使用纯文本方式编写文件,并使用标准的UTF-8编码。

3.Git中的常用操作命令小结

(1)初始化一个Git仓库,使用git init命令。

添加文件到Git仓库,分两步:

第一步,使用命令git add (file),注意,可反复多次使用,添加多个文件;

第二步,使用命令git commit,完成。

为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件

(2)要随时掌握工作区的状态,使用git status命令。

如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

git status命令可以让我们时刻掌握仓库当前的状态

git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式

(3)git log命令显示从最近到最远的提交日志

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数              即git log --pretty=oneline

在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看

(4)HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

在Git中,用HEAD表示当前版本,也就是最新的提交。上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。回退到上一个版本,就可以使用git reset命令

4. 工作区和暂存区

工作区(Working Directory):

就是你在电脑里能看到的目录。

版本库(Repository):

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

相关文章

网友评论

      本文标题:git学习笔记(一)

      本文链接:https://www.haomeiwen.com/subject/pfjikttx.html