初始化
git init # 初始化本地git仓库
添加文件
git add [file] # 添加文件到仓库
git add . # 添加当前目录所有文件
git add -u # 添加文件到仓库,不包括新建文件
git add --all # 添加文件到仓库,包括新建文件
提交文件
git commit -m [message] # 提交文件
查看状态
git status # 查看当前仓库状态
查看日志
git log # 查看提交日志
git log --oneline # 查看提交日志,简洁显示
git log --oneline --graph # 查看提交日志,简洁显示,带分支提交关系图
git log --oneline --graph --all # 查看提交日志,简洁显示,带分支提交关系图,包括远程仓库
查看文件差异
git diff [file] # 查看文件差异
git diff # 查看当前目录所有文件差异
git diff --cached # 查看缓存区文件差异
撤销修改
git checkout -- [file] # 撤销工作区文件修改
git reset --hard # 撤销缓存区文件修改
推送文件
git push # 推送本地文件到远程仓库
git push -u origin [branch] # 推送本地文件到远程仓库,并关联分支
git push --force # 强制推送本地文件到远程仓库
git push --all # 推送本地所有分支到远程仓库
拉取文件
git pull # 拉取远程仓库文件到本地
git pull origin [branch] # 拉取远程仓库指定分支文件到本地
git pull --all # 拉取远程仓库所有分支文件到本地
查看远程仓库
git remote # 查看远程仓库
git remote -v # 查看远程仓库详细信息
git remote add [name] [url] # 添加远程仓库
git remote rm [name] # 删除远程仓库
分支管理
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch [name] # 创建本地分支
git branch -d [name] # 删除本地分支
git branch --track [name] [remote/branch] # 创建本地跟踪分支
git branch -m [oldname] [newname] # 重命名本地分支
git checkout [name] # 切换分支
git checkout -b [name] # 创建并切换分支
git merge [branch] # 合并分支
git merge --no-ff [branch] # 合并分支,强制创建commit
git rebase [branch] # 将指定分支的提交重新放到当前分支
git cherry-pick [commit] # 将指定提交添加到当前分支
git stash # 将当前工作现场“储藏”起来
git stash pop # 恢复最近的一次暂存,并删除stash内容
git stash list # 查看所有stash内容
git stash drop [stash] # 删除指定stash内容
git stash apply [stash] # 恢复指定stash内容,但不删除stash内容
标签管理
git tag # 查看标签
git tag [name] # 创建标签
git tag -a [name] -m [message] # 创建带有说明的标签
git tag -d [name] # 删除标签
git push origin [tagname] # 推送标签到远程仓库
git push origin --tags # 推送所有标签到远程仓库
git push origin :refs/tags/[tagname] # 删除远程仓库标签