1.背景
Git 是一个开源的分布式版本控制系统,用于跟踪文件及文件夹的更改,以便于多个人协同工作时能高效地处理项目。
- 工作原理图

2. 核心概念
- 工作区:平时存放项目代码的地方;
- 暂存区:用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息;
- 本地仓库:就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本;
- 远程仓库:托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。
3.初始化和配置
3.1快捷用法
git init:在当前目录初始化一个新的Git仓库。
git config:配置Git的设置,如用户名、邮箱等。
4.添加和提交
4.1 快捷用法
git add <file>:添加文件到暂存区。
git add .:添加所有改动到暂存区。
git status:查看工作目录和暂存区的状态。
git commit -m "message":提交暂存区的改动到本地仓库,附带提交信息。
git commit --amend:修改最后一次提交的信息或内容。
4.2 详细用法(后续会拆分为独立文档)
4.2.1 将文档的改动添加到暂存区
- 基础用法
git add <filename>
git add .
git add *.txt
- 高级用法
git add (-i | --interactive)

git add -p <filename>

git add (--ignore-space-at-eol | --ignore-space-change | --ignore-all-space)
4.2.2 用于将暂存区(Staging Area)中的改动保存到本地仓库
- 基础用法
git commit
git commit -m "这是一个描述提交内容的简短信息"
- 高级用法
git commit -a -m "提交信息"
git commit --author="Author Name <author@example.com>" -m "提交信息"
git commit --amend [-m "新的提交信息"]
5.分支操作
5.1 快捷用法
git branch:列出本地分支。
git branch -a:列出所有分支,包括远程分支。
git checkout <branch>:切换到指定分支。
git checkout -b <new-branch>:创建并切换到新分支。
git merge <branch>:合并指定分支到当前分支。
git branch -d <branch>:删除分支。
git branch -D <branch>:强制删除分支。
5.2 详细用法
5.2.1 用于在不同的分支之间切换、恢复工作目录中的文件,或者丢弃未提交的改动
git checkout <branch-name>
git checkout -b <new-branch-name> [start-point]
git checkout <file-path>
git checkout .
6. 查看历史
git log:查看提交日志。
git log --oneline:简洁显示提交历史。
git blame <file>:查看文件每一行最后修改的提交信息。
git diff:比较文件或目录的差异
7.远程操作
git remote add origin <url>:添加远程仓库。
git fetch:从远程仓库获取最新信息,但不合并。
git pull:从远程仓库获取并合并最新信息到当前分支。
git push <remote> <branch>:将本地分支推送到远程仓库。
git push --set-upstream origin <branch>:首次推送并关联远程分支。
8. 撤销和恢复
git reset <file>:取消暂存指定文件的改动。
git reset --hard:回退到指定提交,丢弃工作目录和暂存区的改动。
git revert <commit>:创建一个新的提交来撤销指定提交的更改。
git restore:在Git 2.23+中用于恢复工作树文件或暂存区状态。
9.标签
git tag:列出所有标签。
git tag <tagname>:给当前提交打标签。
git tag -a <tagname> -m "message":带有注释信息的标签。
git push <remote> <tagname>:推送标签到远程仓库。
10. 解决冲突
- 手动编辑冲突文件,移除Git插入的特殊标记(<<<<<<<, =======, >>>>>>>)。
git add <conflicted-file>:解决冲突后,重新添加文件。
git commit:提交解决冲突后的更改。