Git 备忘录

入门

初始化新仓库

git init

克隆现有仓库

git clone <url>

准备提交

添加未跟踪文件或未暂存的变更

git add <文件>

添加所有未跟踪文件和未暂存的变更

git add .

选择要暂存的文件部分

git add -p

移动文件

git mv <旧名称> <新名称>

删除文件

git rm <文件>

让 Git 忽略文件而不删除它

git rm --cached <文件>

取消暂存一个文件

git reset <文件>

取消暂存所有内容

git reset

查看你已暂存的内容

git status

进行提交

进行提交(并打开文本编辑器编写提交信息)

git commit

进行提交

git commit -m '提交信息'

提交所有未暂存的变更

git commit -am '提交信息'

查看暂存/未暂存的变更

查看所有暂存和未暂存的变更

git diff HEAD

只查看暂存的变更

git diff --staged

只查看未暂存的变更

git diff

查看提交记录的变更

显示一个提交与其父提交的差异

git show <提交记录>

比较两个提交记录的差异

git diff <提交记录> <提交记录>

比较一个文件自某个提交记录以来的差异

git diff <提交记录> <文件>

显示差异的摘要

git diff <提交记录> --stat git show <提交记录> --stat

放弃你的变更

放弃单个文件的未暂存变更

git restore <文件> git checkout <文件>

放弃单个文件的所有暂存和未暂存变更

git restore --staged --worktree <文件> git checkout HEAD <文件>

放弃所有暂存和未暂存的变更

git reset --hard

删除未跟踪文件

git clean

'暂存' 所有暂存和未暂存的变更

git stash

代码考古

查看分支的历史记录

git log main git log --graph main git log --oneline

显示修改了某个文件的所有提交记录

git log <文件>

显示修改了某个文件的所有提交记录,包括它重命名之前的记录

git log --follow <文件>

查找添加或删除了某些文本的所有提交记录

git log -G banana

显示最后修改了文件中某一行的人

git blame <文件>

恢复旧文件

获取另一个提交记录中某个文件的版本

git checkout <提交记录> <文件> git restore <文件> --source <提交记录>

添加远程仓库

git remote add <名称> <URL>

拉取变更

获取变更(但不修改你任何本地分支)

git fetch origin main

获取变更然后 rebase 当前分支

git pull --rebase

获取变更然后将它们合并到当前分支

git pull origin main git pull

配置 Git

设置一个配置选项

git config user.name '你的名字'

全局设置选项

git config --global ...

添加一个别名

git config alias.st status

查看所有可用的配置选项

man git-config