1. 初始化仓库
git init # 初始化一个新的 Git 仓库
git clone <repository_url> # 克隆远程仓库到本地
2. 配置
git config --global user.name "Your Name" # 设置全局用户名
git config --global user.email "your.email@example.com" # 设置全局邮箱
git config --list # 查看当前配置
3. 基本操作
git status # 查看工作目录和暂存区的状态
git add <file> # 将文件添加到暂存区
git add . # 将所有修改的文件添加到暂存区
git commit -m "commit message" # 提交暂存区的更改到本地仓库
git commit -a -m "commit message" # 跳过暂存区,直接提交所有已跟踪文件的更改
4. 分支操作
git branch # 列出所有本地分支
git branch <branch_name> # 创建一个新分支
git checkout <branch_name> # 切换到指定分支
git checkout -b <branch_name> # 创建并切换到新分支
git merge <branch_name> # 将指定分支合并到当前分支
git branch -d <branch_name> # 删除指定分支
git branch -m <new_branch_name> # 重命名当前分支
5. 远程操作
git remote -v # 查看远程仓库信息
git remote add <name> <url> # 添加一个新的远程仓库
git fetch <remote> # 从远程仓库获取更新,但不合并
git pull <remote> <branch> # 从远程仓库拉取更新并合并到当前分支
git push <remote> <branch> # 将本地分支推送到远程仓库
git push -u <remote> <branch> # 推送并设置上游分支
6. 撤销操作
git checkout -- <file> # 撤销工作目录中文件的修改
git reset HEAD <file> # 将文件从暂存区移除
git reset --soft <commit> # 撤销提交,但保留更改在暂存区
git reset --mixed <commit> # 撤销提交,并将更改保留在工作目录
git reset --hard <commit> # 撤销提交并丢弃所有更改
git revert <commit> # 创建一个新的提交来撤销指定提交的更改
7. 查看历史
git log # 查看提交历史
git log --oneline # 查看简洁的提交历史
git log --graph # 查看带有分支图的提交历史
git show <commit> # 查看指定提交的详细信息
git diff # 查看工作目录和暂存区的差异
git diff --cached # 查看暂存区和最后一次提交的差异
git diff <commit1> <commit2> # 查看两个提交之间的差异
8. 标签操作
git tag # 列出所有标签
git tag <tag_name> # 在当前提交上创建一个轻量标签
git tag -a <tag_name> -m "tag message" # 创建一个带注释的标签
git push <remote> <tag_name> # 推送标签到远程仓库
git push <remote> --tags # 推送所有标签到远程仓库
git tag -d <tag_name> # 删除本地标签
git push <remote> --delete <tag_name> # 删除远程标签
9. 暂存和恢复
git stash # 将当前工作目录的修改暂存起来
git stash list # 列出所有暂存的修改
git stash apply # 恢复最近一次暂存的修改
git stash drop # 删除最近一次暂存的修改
git stash pop # 恢复并删除最近一次暂存的修改
git stash clear # 删除所有暂存的修改
10. 其他操作
git rebase <branch> # 将当前分支的提交变基到指定分支上
git cherry-pick <commit> # 将指定提交应用到当前分支
git bisect # 使用二分查找来定位引入 bug 的提交
git clean -n # 显示将要删除的未跟踪文件
git clean -f # 删除未跟踪的文件
11. 子模块
git submodule add <repository_url> # 添加一个子模块
git submodule update --init --recursive # 初始化并更新子模块
12. 忽略文件
# 在项目根目录创建 .gitignore 文件,列出需要忽略的文件和目录
13. 高级操作
git reflog # 查看引用日志,用于恢复丢失的提交或分支
git filter-branch # 重写提交历史(谨慎使用)
git gc # 清理不必要的文件并优化本地仓库
14. 协作与工作流
git fetch --prune # 删除远程已删除分支的本地引用
git pull --rebase # 拉取远程更新并使用 rebase 合并
git push --force-with-lease # 强制推送,但避免覆盖他人工作
15. 查看 Git 版本
git --version
16. 查看 Git 安装位置
# Linux/macOS
which git# Windows
where git