Skip to content

Git 常用命令

仓库

# 初始化git
git init
# 克隆/下载完整项目  
git clone

配置

# 当前git配置
git config --list  
# 编辑git配置文件
git config -e [--global]
# 设置提交代码时的用户信息
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"

增加、删除文件

# 添加指定文件到暂存区
git add 文件路径 文件路径 ...
# 添加指定目录到暂存区包括子目录
git add 目录路径
# 添加当前目录的所有文件到暂存区
git add .
# 删除工作区文件 并将这次删除放入暂存区
git rm 文件路径 文件路径 ...

代码提交

# 提交暂存区到仓库区
git commit -m '提交描述'
# 提交暂存区的指定文件到仓库区
git commit 文件路径 文件路径 ... -m '提交描述'
# 提交工作区自上次commit之后的变化,直接到仓库区
git commit -a
# 提交时显示所有diff信息
git commit -v

分支

# 所有本地分支
git branch
# 所有远程分支
git branch -r
# 所有本地分支和远程分支
git branch -a
# 新建分支 但依然停留在当前分支
git breach  分支名称
# 新建分支 并切换到该分支
git checkout -b 分支名称
# 新建分支 并切换到分支 拉取远程分支
git checkout -b 新分支名称  远程分支名称
# 切换到指定分支 并更新工作区
git checkout 分支名称
# 切换到上个分支
git checkout -
# 合并指定分支到当前分支
git merge 分支名称
# 删除分支
git branch -d 分支名称
# 删除远程分支
git push origin --delete 分支名称

标签

# 所有tag
git tag
# 新建一个tag在当前提交
git tag tag名称
# 删除本地tag
git tag -d tag名称
# 查看tag信息
git show tag名称

查看信息

# 显示有变更的文件
git status
# 显示当前分支的版本历史
git log
# 显示commit历史,以及每次commit发生变更的文件
git log --stat
# 显示过去5次提交
git log -5 --pretty --oneline
# 显示所有提交过的用户,按提交次数排序
git sgortlog -sn
# 显示指定文件是什么人在什么时间修改过
git blame 文件路径
# 显示暂存区和工作区的差异
git diff
# 显示当前分支的最近几次提交
git reflog

远程同步

# 显示所有远程仓库
git remote -v
# 拉取远程仓库的变化,并与本地分支合并
git pull 远程仓库地址 分支名称
# 上传本地指定分支到远程仓库
git pull 远程仓库地址 分支名称
# 强行推送当前分支到远程仓库,即使有冲突
git push 远程仓库地址 --force
# 推送所有分支到远程仓库
git push 远程仓库地址 --all

回滚

# 恢复暂存区的指定文件到工作区
git checkout 文件路径
# 恢复暂存区的所有文件到工作区
git checkout .
# 恢复某个commit的指定文件到暂存区和工作区
git checkout 提交树ID 文件路径
# 重置暂存区与工作区,与上一次commit保持一致
git reset --hard
# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset 提交树ID
# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --hard 提交树ID
# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
git reset --keep 提交树ID