Git基础
1.Git是什么
Git主要是对当时的全部文件制作一个快照并保存这个快照的索引。如果文件没有修改,git不再重新存储该文件,而只是保留一个链接指向之前存储的文件。Git更像是把数据看作是对小型文件系统的一组快照。
2.Git工作原理
Git 有三种状态:已提交(committed)、已修改(modified)和已暂存(staged)。已提交表示数据已经安全的保存在本地数据库中,已修改表示修改了文件,但还没有保存到数据库中,已暂存表示对一个已修改的文件的当前版本做了标记,使其包含在下次提交的快照中。
- workspace: 工作区
- index: 暂存区 【可以使用 git status来查看当前暂存区的状态】
- repository: 本地仓库(仓库区)
- remote:远程仓库
3.常用命令
git init 初始化仓库
git clone [url] 克隆现有仓库
例:git clone https://github.com/libgit2/libgit2 mylibgit
git支持多种数据传输协议,可使用https://协议,也可以使用git://协议或SSH传输协议
设置忽略文件
某些文件无需纳入git的管理。可创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
.gitignore的格式规范:
- 所有空行及 # 开头的行都将被忽略
- 可以使用标准的glob模式匹配
- 可以以(/)开头防止递归,以(/)结尾指定目录
- 模式前加(!)表示取反
git remote add origin https://github.com/RTplay/testgit.git: 关联一个远程库
git push --set-upstream origin master 设置关联分支
git diff 尚未暂存的⽂件更新了哪些部分
git diff --cached 暂存区文件与上个版本的区别
git commit -m " commit message" 提交
git rm filename 将文件从已跟踪文件清单中删除
下一次提交时,该文件就不再纳入版本管理。
另一种情况:将文件从Git仓库中删除,但是在本地仍存在(如不小心提交了一堆日志文件,现在要将这些文件从版本中删除)
git rm --cached filenames
可以一次删除多个文件,文件名间用空格隔开,文件名也支持glob模式
git rm log/*.log
对文件改名
git mv file_old file_new
相当于运行以下三条命令
1.mv file_old file_new
2.git rm file_old
3.git add file_new