「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」
前言
在前面的几篇文章主要介绍了一些原理性的东西。本篇文章作为收尾,将介绍一些在日常工作中比较有用的命令以及解决一些经常出现的问题场景。大家可以结合git常用命令(熟练了就是高手)进行学习。
Git命令
- 查看历史提交
git log # 查看历史提交摘要
git log --graph # 历史提交图谱
git log --stat <path> # (path)历史提交清单
git log -p <path> # (path)历史提交明细(文件)
- 暂存当前修改(工作区+暂存区)
git stash # 暂存(一种栈结构的形式)
git stash -u # u表示untracked文件也暂存
git stash pop # 恢复修改(恢复栈尾内容)
- 撤销commit(多用于某功能延后发版)
git revert <commitId> <commitId> # 撤销某些commit修改内容,将产生新的revert commitId
- 提取其他分支的提交信息
git cherry-pick <commitId> <commitId> # 提取多个commit
git cherry-pick A..B # 提取(A,B]之间的commit(前开后闭)
git cherry-pick <commitId> -x # x表示在提交信息保存原始commitID
- 提取他人修改内容(无法通过Git仓库同步时)(不常用)
git format-patch -n <A> # 生成A及之前n-1个commit的patch文件((pre, A])
git format-patch <A> # 生成A以来的patch文件(不包含A)
git format-patch <A>..<B> # 生成(A,B]之间的patch文件
git am <patch> # 应用patch(保留patch作者的提交信息无需再commit)(可以一次性应用多个)
git apply <patch> # 应用patch(不保留作者信息,需要重新add及commit)(可以一次性应用多个)
- 查看操作记录
git reflog # 可查看本地一定期限的所有操作日志,据此可回退或前进版本
- 找回丢失的修改
-
如果曾经提交过commit,那么通过reflog就可以很轻松的切换到某个commit找回代码
-
如果曾经执行过add,那么可通过.git下的objects文件夹找回修改对应的二进制文件(会很麻烦)
-
如果既没有add也没commit,那么大概率是听天由命了
结语
本篇文章通过一些场景来学习日常工作中常用的某些命令,比较简单。至此Git系列的学习也要告一段落了。
参考
- git常用命令(熟练了就是高手)进行学习。# 深入Git-下篇
前言
在前面的几篇文章主要介绍了一些原理性的东西。本篇文章作为收尾,将介绍一些在日常工作中比较有用的命令以及解决一些经常出现的问题场景。大家可以结合git常用命令(熟练了就是高手)进行学习。
Git命令
- 查看历史提交
git log # 查看历史提交摘要
git log --graph # 历史提交图谱
git log --stat <path> # (path)历史提交清单
git log -p <path> # (path)历史提交明细(文件)
- 暂存当前修改(工作区+暂存区)
git stash # 暂存(一种栈结构的形式)
git stash -u # u表示untracked文件也暂存
git stash pop # 恢复修改(恢复栈尾内容)
- 撤销commit(多用于某功能延后发版)
git revert <commitId> <commitId> # 撤销某些commit修改内容,将产生新的revert commitId
- 提取其他分支的提交信息
git cherry-pick <commitId> <commitId> # 提取多个commit
git cherry-pick A..B # 提取(A,B]之间的commit(前开后闭)
git cherry-pick <commitId> -x # x表示在提交信息保存原始commitID
- 提取他人修改内容(无法通过Git仓库同步时)(不常用)
git format-patch -n <A> # 生成A及之前n-1个commit的patch文件((pre, A])
git format-patch <A> # 生成A以来的patch文件(不包含A)
git format-patch <A>..<B> # 生成(A,B]之间的patch文件
git am <patch> # 应用patch(保留patch作者的提交信息无需再commit)(可以一次性应用多个)
git apply <patch> # 应用patch(不保留作者信息,需要重新add及commit)(可以一次性应用多个)
- 查看操作记录
git reflog # 可查看本地一定期限的所有操作日志,据此可回退或前进版本
- 找回丢失的修改
-
如果曾经提交过commit,那么通过reflog就可以很轻松的切换到某个commit找回代码
-
如果曾经执行过add,那么可通过.git下的objects文件夹找回修改对应的二进制文件(会很麻烦)
-
如果既没有add也没commit,那么大概率是听天由命了
结语
本篇文章通过一些场景来学习日常工作中常用的某些命令,比较简单。至此Git系列的学习也要告一段落了。