Git 常用操作
Git 工作流程
stage: 暂存区
git add
: 将文件从工作区添加到暂存区git commit
: 将文件从暂存区添加到分支
Merge
将 future 分支合并到 main 分支
git merge <branch>
- 切换到 main 分支
git checkout main
- 执行 merge 操作
git merge futrue
Cherry-pick
将 future 分支中的某个提交 cherry-pick 到 main 分支。 首先切换到 main 分支,然后执行:
git cherry-pick <hash1> <hash2> ..
git cherry-pick <hash1>^..<hash2>
- 查看提交记录,复制需要 cherry-pick 的提交 hash 值
git log
- 切换到 main 分支
git checkout main
- 执行 cherry-pick
git cherry-pick <提交的哈希值>
如果想要 cherry-pick 多个提交,可以列出它们的哈希值,空格分隔:
git cherry-pick <提交1的哈希值> <提交2的哈希值> <提交3的哈希值>
你也可以使用 commit 范围来选择一系列连续的提交,例如:
git cherry-pick <起始提交的哈希值>^..<结束提交的哈希值>
- 如果存在冲突需要手动解决冲突并使用
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>