码农可能每天都会用到的Git命令速查表

根据我自己的经验,以下是我经常遇到的关于"如何使用Git进行X运算"的常见问题的解答。 我们中有些人甚至可能每天使用这些解决方案。 2020-10-08 18:14:15 码农Git命令 如何使Java程序员拥有高效率的开发环境 作为一名程序员,好的开发环境可以提升你的工作效率,事半功倍。那么一名Java程序员应该拥有什么样的开发工具呢。 2020-10-08 15:01:17 开发Java程序员 如何设置一个正经的Kubernetes终端 Kubernetes预先包装了出色的CLI。 对于基本操作,它的运行非常出色。 las,当需要快速执行某项操作时,复杂性就会增加。 2020-10-08 14:29:57 Kubernetes容器开发 面试官:Zookeeper了解吗?说说都有哪些使用场景? 本文主要来聊聊 Zookeeper 主要的几个使用场景。

根据我自己的经验,以下是我经常遇到的关于"如何使用Git进行X运算"的常见问题的解答。 我们中有些人甚至可能每天使用这些解决方案。

日常问题的实用答案

[[344995]]

我每天都使用Git。

大多数软件开发人员也是如此。

老实说,莱纳斯·托瓦尔兹(Linus Torvalds)的小小项目几乎感觉像是一个奇迹。

但是,该工具功能强大且功能强大,以至于很容易在其所有可能的命令中迷失方向。

因此,根据我自己的经验,以下是我经常遇到的关于"如何使用Git进行X运算"的常见问题的解答。 我们中有些人甚至可能每天使用这些解决方案。

确实,这里解决的许多命令将非常简单,并且通常为大多数开发人员所熟知。

但是,我认为这对于记住一处您遗忘的命令可能是一个一站式服务的场所,并且为初学者提供了良好的基础。

相反,如果您希望深入了解Git,可以查看这篇文章。

Git速查表

在不提交更改的情况下存储更改

这是一个简单的示例,只需运行:

  1. gitstash

然后,要恢复这些存储的更改,并确保您位于同一分支,可以运行:

  1. gitstashapply

干掉所有未提交的更改

有时您想尝试一些方法,但效果不佳。 要摆脱自上一次提交以来所做的所有更改,只需运行:

  1. gitcheckout--.

要仅清除特定文件或目录中的更改,请。 可以替换为您希望从中删除更改的文件和/或目录的列表。

将fork与主仓库同步

分支项目时,请务必保持最新状态,以避免在发出请求时出现复杂的合并冲突,或者只是确保您具有所有新功能和安全补丁。

因此,这是同步叉子的方法:

(1) 添加一个远程仓库

从分支的位置获取上游(主)存储库的地址。 然后运行以下命令,替换URL:

  1. gitremoteaddupstream<upstream_repo_url>

您可以通过运行git remote -v来检查是否有效。

(2) 将fork与上游仓库同步

要同步派生,请获取上游存储库:

  1. gitfetchupstream

然后,在您要与之同步的分支(通常是主节点)上,运行:

  1. gitmergeupstream/master

或git根据您选择的策略对上游/主服务器进行重新设置。

删除最后的X次提交

做出一些您最终需要还原的提交? 您可以通过两种方式进行操作:

  1. gitresetHEAD~2#undothecommitsbutkeepthechanges
  2. gitreset--hardHEAD~2#undothecommitsanddiscardchanges

使用第二个选项,就好像提交从未发生过。

您应该将2替换为您希望从最新提交(HEAD)返回的提交数。

将各种提交压缩为一个(无需重新设置!)

如果您想摆脱所有的"修订错误"提交,并将它们全部合并为一个,则可以使用以下方法:

  1. gitreset--softHEAD~2&&gitcommit-m"yourmessage"

请记住将2替换为您要从HEAD计数的提交次数。

在上一次提交时签出项目的状态

要返回过去查看过去一次给定提交的项目状态,请首先运行git log以查看提交历史记录,然后选择要返回的提交。

然后,复制其哈希并仅运行git checkout 。 这将使您处于"分离头"模式。 要返回,只需按名称签出分支即可。

忽略已经添加到Git的文件

我们到过那里-添加或提交我们不应该拥有的东西。 要将文件从Git跟踪中删除并保留在系统中,只需执行以下操作:

  1. gitreset<file>&&echo<file>>>.gitignore

提交后添加到提交中

如果要更改提交消息或向其中添加新文件,可以使用git ammend。

要更改消息,请使用:

  1. gitcommit--amend-m"<new_message>"

并向上一次提交添加新文件:

  1. gitadd<file>&&gitcommit--amend

请注意,这"省去了创建新提交的麻烦",但实际上确实在后台创建了新提交。 因此,只有在尚未将更改推送到远程存储库时,才应该这样做。

从Git删除文件并修剪其整个历史记录

如果您曾经将敏感数据推送到远程存储库(例如,在GitHub上),则不仅需要从Git跟踪中删除文件,还需要删除其整个历史记录。

您也不应该再使用该数据,例如在使用API密钥,密码等的情况下。

这样做的过程并不是最简单的,但是GitHub已经编写了一个整页的教程,因此我认为我应该在这里链接它。

"从存储库中删除敏感数据-GitHub"。

记录合并冲突解决方案

为了避免多次解决相同的确切合并冲突,可以启用合并冲突解决方案的Git缓存。 这将存储合并冲突的解决方式,如果再次出现,将自动解决相同的冲突:

  1. gitconfig--globalrerere.enabledtrue

在Git Docs上了解有关此内容的更多信息。

错误分支上的提交

如果您在错误的分支上进行了提交,则应该能够使用我们有关删除提交的知识来解决该问题,如下所示:

  1. gitbranch<new_branch>&&gitresetHEAD~2--hard

这将创建一个新分支,并从您错误地添加了提交的当前分支中删除指定数量的提交。

如果您实际上希望这些提交在现有分支上而不是在新分支上进行,则可以执行以下操作:

  1. gitcheckout<desired_branch>&&gitmerge<branch_with_commits>
  2. gitcheckout<branch_with_commits>&&gitresetHEAD~2--hard

但是,如果不能合并,则可以使用git cherry-pick,如下所示:

  1. gitcheckout<desired_branch>
  2. gitcherry-pick<branch_with_commits><branch_with_commits>~2
  3. gitcheckout<branch_with_commits>&&gitresetHEAD~2--hard

更改分支名称

要更改分支的名称,请使用git branch -m。 您可以更改当前分支的名称:

  1. gitbranch-m<new_name>

或更改任何分支的名称:

  1. gitbranch-m<old_name><new_name>

查找带有错误的提交

如果您遇到与提交无关的问题,则需要确定过去是哪种提交导致了此问题。 这在测试中很常见,例如,由于一项与您的工作完全无关的测试而无法通过时。

在这种情况下,要查找"不良"提交,可以使用git bisect。

它的工作方式如下:

  • 开始过程
    1. gitbisectstart
  • 将当前提交标记为"不良"
    1. gitbisectbad
  • 将过去的提交标记为"良好"

例如,使用git log查找过去的提交,其中事情按预期进行(即良好)。 然后,运行:

  1. gitbisectgood<commit_hash>
  • 平分秋色!

您现在应该收到以下消息:

  1. Bisecting:2revisionslefttotestafterthis(roughly3steps)[6ca4a67aeb4b0d9835ecf15e44505c48f93642c9]my-branch

数字,哈希和分支名称自然会与您不同。

在这里,Git正在做的事情是一步一步地完成提交,直到找到被破坏的提交为止。 您无需运行git checkout,因为它已为您处理。

在每次提交时,都应检查一切是否正常。 如果不是,请使用git bisect bad将提交标记为错误。 如果是,则使用git bisect good将其标记为好。

将提交标记为良好后,Git会将您带到第一个"不良"提交(即,您标记为不良的最后一个),以便您可以正确地调查错误。 完成后,只需通过签出分支(git checkout )返回分支的头并解决问题。

今天是我给的。 Git是一个很棒的工具,我希望这个备忘单可以帮助您解决一路上可能遇到的一些问题。

它绝对不会涵盖您需要了解的所有内容,但这是一个好的开始。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月5日 13:39
下一篇 2023年5月5日 13:41

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信