Git学习笔记

好久没翻自己的印象笔记了,今天回过头看了看,有些笔记还是挺好的。把它们转移到博客上面去。

Git基本概念

Git是分布式的,可以有多个完整的镜像仓库,当执行clone操作时,会将整个镜像复制到自己的目录下。

Subversion等版本控制系统只有一个镜像仓库,用户提交的更改都会保存到镜像仓库中。

Git相比于其它更关注整体差异,而不关心每个文件被修改了哪些地方。Git判断文件是否发生过改变是通过校验和(Checksum)来实现的。它使用SHA-1算法。

图片1
图片2

Git中有三种状态:已提交、已暂存、已修改。
对应有三个目录:工作目录、暂存区域、git目录(Repository)

在git目录下的内容为已提交;在暂存区域的内容为已暂存;在工作目录已经修改但尚未放入暂存区域的内容为已修改。
暂存区域实际上只是Git目录下的一个普通文件,也被称为索引文件。

Git的基本操作

debian系的安装命令:

apt-get install git-core

初次配置:

Git中三个配置文件:

  • /etc/gitconfig 适用于所有用户
  • ~/.gitconfig 在用户目录下,只适用于该用户
  • 当前项目工作目录/.git/config 只适用于当前项目

下面的配置可以屏蔽上面的配置:

设置用户信息:

git config --global user.name xxx
git config --global user.email xxx

--global选项表示对于当前用户有效,不加表示针对当前项目。

Git的基本操作

对项目使用Git管理:

git config

然后会产生.git目录,现在需要加入要跟踪的文件,如

git add *.c      git add README

从已有项目克隆:

git clone git://xxx

也可以用http(s)或ssl协议。

将已修改的文件加入暂存区域:
同样使用add

git add xxx

忽略某些文件:

将其加入到.gitignore中

提交更新:

git commit

跳过暂存步骤直接提交:

git commit -a

移除文件:

git rm xx

移动:

git mv xx

回滚到以前的版本:

git reset

这里貌似要使用-hard选项,不知道其它参数有什么区别,以后有空再看看

原文地址:https://www.cnblogs.com/CodeCabin/p/3984516.html