1.为什么使用Git?
- 直接记录快照,而非差异比较。
- 近乎所有操作都是本地执行。
- Git保证完整性。
- Git一般只添加数据。
2.Git共有三种状态:已提交(committed)、已修改(modified)、已暂存(staged)。
- 已修改表示修改了文件,但还没保存在数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,包含在下次提交的快照中。
- 已提交表示数据已经安全地保存在本地数据库中。
3.Git基本工作流程:
- 在工作区修改文件。
- 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
- 提交更新,找到暂存区的文件,将快照永久性存储到Git目录。
Git安装:Git 详细安装教程(详解 Git 安装过程的每一个步骤)_mukes的博客-CSDN博客_git安装
常用Git指令:
git add . 跟踪新文件
git commit -m '' 添加解释指令的行为(写清自己修改/添加/删除了什么)
git clone <url> 克隆仓库 (Git 支持多种数据传输协议)
git status 查看当前文件状态
git diff 查看已暂存和未暂存的修改(相比git status会更加具体的显示哪行发生了改变)
git diff --staged 查看已暂存的将要添加到下次提交里的内容。(对比已暂存与最后一次提交文件的差异)
git diff --cached 查看已暂存起来的变化。(与--staged是同义词)
git rm 移除文件
git mv 移动文件
git log 查看提交历史
git log -p -2 查看最近的两次提交
git log --start 代码审查(查看每次提交的简略统计信息,每次提交的最后还有一个总结)
git log --pretty 使用不同于默认格式的方式展示提交历史(=oneline 一行 short、full、fuller)
git log --pretty=format 定制记录的显示格式
git commit --amend 重新提交
git remote 查看远程仓库
git remote add <shortname> <url> 添加一个新的远程Git仓库
git fetch <remote> 从远程仓库中抓取与拉取
git pull <remote> <branch> 推送到远程仓库
git remote show <remote> 查看某个远程仓库
git branch 创建分支
git checkout 切换分支
git merge 合并分支
忽略文件.gitignore
- 所有空行或者以#开头的行都会被Git忽略。
- 可以使用标准的glob模式匹配,会递归地应用在整个工作区中。
- 匹配模式可以以(/)开头防止递归,以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(
*
)匹配零个或多个任意字符;[abc]
匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 问号(?
)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如[0-9]
表示匹配所有 0 到 9 的数字)。 使用两个星号(**
)表示匹配任意中间目录,比如a/**/z
可以匹配a/z
、a/b/z
或a/b/c/z
等。
$ git rm \*~ 删除所有名字以~结尾的文件。