深入Git-下篇

简介: 前言在前面的几篇文章主要介绍了一些原理性的东西。本篇文章作为收尾,将介绍一些在日常工作中比较有用的命令以及解决一些经常出现的问题场景。大家可以结合git常用命令(熟练了就是高手)进行学习。

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战

前言


在前面的几篇文章主要介绍了一些原理性的东西。本篇文章作为收尾,将介绍一些在日常工作中比较有用的命令以及解决一些经常出现的问题场景。大家可以结合git常用命令(熟练了就是高手)进行学习。


Git命令


  1. 查看历史提交


git log # 查看历史提交摘要
git log --graph # 历史提交图谱
git log --stat <path> # (path)历史提交清单
git log -p <path> # (path)历史提交明细(文件)
复制代码

  1. 暂存当前修改(工作区+暂存区)


git stash # 暂存(一种栈结构的形式)
git stash -u # u表示untracked文件也暂存
git stash pop # 恢复修改(恢复栈尾内容)
复制代码

  1. 撤销commit(多用于某功能延后发版)


git revert <commitId> <commitId> # 撤销某些commit修改内容,将产生新的revert commitId
复制代码

  1. 提取其他分支的提交信息


git cherry-pick <commitId> <commitId> # 提取多个commit
git cherry-pick A..B # 提取(A,B]之间的commit(前开后闭)
git cherry-pick <commitId> -x # x表示在提交信息保存原始commitID
复制代码

  1. 提取他人修改内容(无法通过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)(可以一次性应用多个)
复制代码

  1. 查看操作记录


git reflog # 可查看本地一定期限的所有操作日志,据此可回退或前进版本
复制代码

  1. 找回丢失的修改


  • 如果曾经提交过commit,那么通过reflog就可以很轻松的切换到某个commit找回代码

  • 如果曾经执行过add,那么可通过.git下的objects文件夹找回修改对应的二进制文件(会很麻烦)
  • 如果既没有add也没commit,那么大概率是听天由命了

结语


本篇文章通过一些场景来学习日常工作中常用的某些命令,比较简单。至此Git系列的学习也要告一段落了。


参考

前言


在前面的几篇文章主要介绍了一些原理性的东西。本篇文章作为收尾,将介绍一些在日常工作中比较有用的命令以及解决一些经常出现的问题场景。大家可以结合git常用命令(熟练了就是高手)进行学习。


Git命令


  1. 查看历史提交


git log # 查看历史提交摘要
git log --graph # 历史提交图谱
git log --stat <path> # (path)历史提交清单
git log -p <path> # (path)历史提交明细(文件)
复制代码

  1. 暂存当前修改(工作区+暂存区)


git stash # 暂存(一种栈结构的形式)
git stash -u # u表示untracked文件也暂存
git stash pop # 恢复修改(恢复栈尾内容)
复制代码

  1. 撤销commit(多用于某功能延后发版)


git revert <commitId> <commitId> # 撤销某些commit修改内容,将产生新的revert commitId
复制代码

  1. 提取其他分支的提交信息


git cherry-pick <commitId> <commitId> # 提取多个commit
git cherry-pick A..B # 提取(A,B]之间的commit(前开后闭)
git cherry-pick <commitId> -x # x表示在提交信息保存原始commitID
复制代码

  1. 提取他人修改内容(无法通过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)(可以一次性应用多个)
复制代码

  1. 查看操作记录


git reflog # 可查看本地一定期限的所有操作日志,据此可回退或前进版本
复制代码

  1. 找回丢失的修改

  • 如果曾经提交过commit,那么通过reflog就可以很轻松的切换到某个commit找回代码

  • 如果曾经执行过add,那么可通过.git下的objects文件夹找回修改对应的二进制文件(会很麻烦)

  • 如果既没有add也没commit,那么大概率是听天由命了

结语


本篇文章通过一些场景来学习日常工作中常用的某些命令,比较简单。至此Git系列的学习也要告一段落了


参考


相关文章
|
3月前
|
存储 缓存 安全
git 进阶
【10月更文挑战第4天】 git 进阶
|
Shell 网络安全 开发工具
一些常用的 Git 进阶知识与技巧
一些常用的 Git 进阶知识与技巧
92 0
|
开发工具 git Ruby
说一说git
说一说git
86 0
|
存储 Linux 开发工具
学会使用Git,看这一篇文章就够了
以上是 Git 的简介绍和常用命令说明。希望这篇文章能够帮助初学者更好地理解和掌握 Git 的使用。Git 在代码管理中是一个非常重要的工具,尤其是在多人协作的情况下。因此,掌握好这些基本命令是非常有必要的。
|
存储 Shell Linux
Git从入门到实战
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。 本文将带你从git入门到git实战,最后成神
245 2
Git从入门到实战
|
数据可视化 Shell 开发工具
深入Git-上篇
前言 作为一个开发者,想必大家都清楚Git。无论大家在工作中是使用命令行还是可视化工具来操作Git,应该都已经熟悉和掌握其基本的使用。而本系列文章的目的在于向大家介绍Git背后的基本原理,例如其如何实现不同版本的代码保存及版本切换。此外,还会向大家介绍一些好用的命令,解决在平常使用中的困惑。
|
Shell 开发工具 git
关于Git,这篇文章还不够吗?
关于Git,这篇文章还不够吗?
|
安全 Unix Shell
超全Git ,看这一篇就够了(二)
超全Git ,看这一篇就够了(二)
142 0
超全Git ,看这一篇就够了(二)
|
存储 安全 Shell
超全Git ,看这一篇就够了(一)
超全Git ,看这一篇就够了
138 0
超全Git ,看这一篇就够了(一)
|
安全 开发工具 数据库
Git看这一篇就够了(一)
Git看这一篇就够了(一)
170 0
Git看这一篇就够了(一)