开始学习Git

Git

Git特点:

①直接记录快照,而非差异比较

而非差异比较是之前的版本控制系统,就是看文件内容的具体差异的(每次操作一下,就记录)。
而Git是看文件整体的数据变化的,把变化的文件作为快照记录在一个文件系统里面。
每次去提交更新,Git就会去扫描一次文件信息当作一个快照,然后保存一个索引去指向这个快照。
如果提交的文件没有变化Git就是创建一个之前快照的链接。

②本地操作,非常方便

从远程仓库里面拉取项目,直接拉到本地仓库里面在更新的时候特别特别方便,网络都不需要。

③保证数据的完整性

Git 使用 SHA-1 算法计算(数据的校验)和,通过(对文件的内容或目录的结构)计算出一个 SHA-1 哈希值,作为指纹字符串。该字串由 40 个十六进制字符(0-9 及 a-f)组成,看起来就像是:
24b9da6552252987aa493b52f8696cd6d3b00373
Git 的工作完全依赖于这类指纹字串,所以你会经常看到这样的哈希值。实际上,所有保存在 Git 数据库中的东西都是用此哈希值来作索引的,而不是靠文件名。

④文件的三种状态

①提交状态(committed)已提交表示该文件已经被安全地保存在本地数据库中了
②已修改(modified)已修改表示修改了某个文件,但还没有提交保存
③已暂存(staged)已暂存表示把已修改的文件放在下次提交时要保存的清单中。
Git的工作流程:修改文件--放入暂存区--提交文件 对应了
工作目录 == 暂存区域 == 本地仓库
Git版本管理目录里面都有一个Git目录非常重要,里面就是每个版本的快照
暂存区域就是在Git目录里面的一个文件,

Git的基本操作

Git的安装

这是官网下载地址:http://git-scm.com/download/win

Git配置信息

Git配置的信息是放在:config文件夹下面的
安装Git之后,我们要配置姓名和邮箱
--golbal 这个命令
git config --global user.name "Home"
git config --global user.email 1272132220@qq.com
--list 查看配置文件
git config --list

Git的基础操作

常用的命令行

初始化Git仓库
git init
添加内容到下一次提交中
git add [文件名]
提交文件
git commit -m [提交的备注]
-a 表示把已跟踪的文件,一起缓存起来提交
git commit -a -m [提交的备注]
克隆仓库
git clone [仓库地址]
查看文件状态
git status
查看文件状态具体的那些状态
git status -short
查看修改文件的差距
git diff
删除某一个文件
git rm [文件名]
移除某一个文件
git mv [文件名]
查看提交历史
git log
。。。

配置忽略文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。 来看一个实际的例子:
$ cat .gitignore
.[oa]
~
第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。 第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。 此外,你可能还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。 要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
文件 .gitignore 的格式规范如下:
所有空行或者以 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号()匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号() 表示匹配任意中间目录,比如a/
/z 可以匹配 a/z, a/b/z 或 a/b/c/z等。

例如

# no .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在 https://github.com/github/gitignore 找到它.

#彻底拿下git#
全部评论
收藏了,感谢分享
点赞 回复 分享
发布于 2022-08-15 14:17

相关推荐

02-05 08:18
四川大学 Java
在思考的熊熊很讨厌吃香菜:不是,我门头沟学院呢?这都没排上?
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务