Git指令大全

21 阅读3分钟

git练习:learngitbranching.js.org/?locale=zh_…(推荐)

常用术语

  • Workspace:工作区
  • Index/Stage:暂存区
  • Repository:仓库区(本地仓库)
  • Remote:远程仓库

一、新建代码库

# 在当前目录新建一个 Git 代码库
git init

# 新建一个目录,将其初始化为 Git 代码库
git init [project-name]

# 克隆远程仓库,包括代码和历史记录
git clone [url]

二、配置

# 查看当前 Git 配置
git config --list

# 编辑 Git 配置文件
git config -e [--global]

# 设置提交代码时的用户信息
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"

三、增加/删除文件

# 添加文件到暂存区
git add [file1] [file2] ...
git add [dir]         # 添加指定目录
git add .             # 添加当前目录所有文件
git add -p            # 交互式添加变更

# 删除文件并放入暂存区
git rm [file]

# 停止追踪文件,但保留工作区文件
git rm --cached [file]

# 文件重命名并添加到暂存区
git mv [file-original] [file-renamed]

四、代码提交

# 提交暂存区变更到仓库
git commit -m "[message]"

# 提交暂存区指定文件
git commit [file1] [file2] -m "[message]"

# 跳过暂存区,直接提交工作区的所有变更
git commit -a -m "[message]"

# 修改上次提交的信息
git commit --amend -m "[message]"

# 重做上一次提交,并包含新变化
git commit --amend [file1] [file2]

五、分支

# 分支操作
git branch              # 列出本地分支
git branch -r           # 列出远程分支
git branch -a           # 列出所有分支
git branch [branch-name]    # 新建分支

# 切换分支
git checkout [branch-name]    # 切换到指定分支
git checkout -b [branch-name] # 新建并切换到分支

# 合并分支
git merge [branch]   # 将指定分支合并到当前分支

# 删除分支
git branch -d [branch-name]          # 删除本地分支
git push origin --delete [branch-name] # 删除远程分支

六、标签

# 标签操作
git tag                   # 列出所有标签
git tag [tag]             # 新建标签
git tag -d [tag]          # 删除本地标签
git push [remote] [tag]   # 推送标签到远程

七、查看信息

# 状态和日志
git status            # 显示工作区状态
git log               # 显示提交历史
git log --stat        # 提交历史及变更文件统计
git log -5 --oneline  # 最近 5 次提交简要信息

# 差异查看
git diff                 # 工作区与暂存区的差异
git diff --cached        # 暂存区与上一次提交的差异
git diff HEAD            # 工作区与最新提交的差异

八、远程同步

# 查看和设置远程仓库
git remote -v                  # 显示所有远程仓库
git remote add [name] [url]    # 添加远程仓库

# 同步代码
git fetch [remote]          # 拉取远程更新
git pull [remote] [branch]  # 拉取并合并分支
git push [remote] [branch]  # 推送本地分支到远程
git push [remote] --all     # 推送所有分支

九、撤销操作

# 文件恢复
git checkout [file]            # 恢复工作区文件
git checkout [commit] [file]   # 恢复指定提交的文件

# 重置操作
git reset [file]               # 重置暂存区文件
git reset --hard               # 重置暂存区和工作区
git reset --hard [commit]      # 回退到指定提交

# 暂存未提交的变更
git stash           # 保存未提交的变更
git stash pop       # 恢复保存的变更