Git 常用操作

Git 工作流程

Image

stage: 暂存区 git add : 将文件从工作区添加到暂存区 git commit : 将文件从暂存区添加到分支

Merge

将 future 分支合并到 main 分支 git merge <branch>

  1. 切换到 main 分支
git checkout main
  1. 执行 merge 操作
git merge futrue

Cherry-pick

将 future 分支中的某个提交 cherry-pick 到 main 分支。 首先切换到 main 分支,然后执行: git cherry-pick <hash1> <hash2> .. git cherry-pick <hash1>^..<hash2>

  1. 查看提交记录,复制需要 cherry-pick 的提交 hash 值
git log
  1. 切换到 main 分支
git checkout main
  1. 执行 cherry-pick
git cherry-pick <提交的哈希>

如果想要 cherry-pick 多个提交,可以列出它们的哈希值,空格分隔:

git cherry-pick <提交1的哈希> <提交2的哈希> <提交3的哈希>

你也可以使用 commit 范围来选择一系列连续的提交,例如:

git cherry-pick <起始提交的哈希>^..<结束提交的哈希>
  1. 如果存在冲突需要手动解决冲突并使用 git add 保存修改并使用 git cherry-pick --continue 继续 cherry-pick,或者执行 git cherry-pick --abort 中止本次 cherry-pick

还原文件修改

  • 将工作区文件还原
git checkout -- <file>
  • 将转存区文件还原到工作区
git reset HEAD <file>
  • 软重置到之前的某次提交
git reset --soft <commit-hash>

查看提交日志

# 显示最近 n 个提交的日志
git log -n <number>
 
# 只显示指定作者的提交日志。
git log --author=<作者名>
 
# 只显示包含指定关键词的提交日志
git log --grep=<关键词>
 
# 以一行的简洁格式显示提交信息
git log --oneline
 
# 显示提交历史的图形表示,可用于可视化分支和合并操作
git log --graph

查看文件内容修改

  • 查看工作区文件内容修改
git diff
git diff <file>
  • 查看暂存区文件内容修改
git diff --staged
git diff --staged <file>

暂存文件修改

  • 暂存修改
# 将未提交的修改暂存
git stash
 
# 将未提交的修改暂存,并且提供信息标识
git stash save "<message>"
  • 查看 stash 列表
git stash list
  • 恢复并且删除 stash
# 恢复并删除最新的 stash
git stash pop
 
# 恢复并删除索引为 n 的 stash
git stash pop stash@{n}
  • 恢复 stash
# 恢复最新的 stash
git stash apply
 
# 恢复索引为 n 的 stash
git stash apply stash@{n}

重命名分支

# 重命名当前分支
git -m <new-breanch-name>

设置上游分支

# 将当前分支的上游设置为 official/main
git branch --set-upstream-to official/main
 
# 查看当前分支的上游
git branch -vv

删除已提交文件

# 在不改变本地文件的情况下从 git 中删除已提交的文件
git rm -r --cached <file>