Git 的 17 周年纪念日是 2022 年 4 月 7 日。自创建以来,Git 已成为软件开发的标准工具。它可以帮助程序员跟踪他们对代码所做的更改,并且作为一个代码托管平台,它允许用户找到有用的应用程序。如果您与源代码(开源或其他)进行交互,则很有可能您与 Git 进行交互。 每天有这么多人使用 Git,我想知道开源社区最喜欢的 Git 命令是什么。 还有什么比提问更好的方式来找出答案呢?
git diff
Git 的隐藏功能之一是它能够进行单词级差异比较。
$ git diff --word-diff file1 file2
它不仅适用于 Git 仓库,还可以比较任意文件
$ git diff --word-diff file1 file2
git status
我离不开 git status
命令。如果我最近调整了我的 .gitignore
,并且不确定语法是否正确,那么这个命令非常棒。如果我想在最后一次 PHPCS 运行时快速查看哪些 PHP、SCSS 或 JavaScript 文件正在被提交,它也很好用。
git cherry-pick
我使用 git cherry-pick
如果我一直在一个分支上工作,并且只想保留一两个提交。我可以从单个提交中提取更改并将其应用到我现在正在工作的分支。当存在合并冲突时,这非常有用,但是由于某种原因,您需要进行重要的更改。
git blame
我使用 git blame
是因为当我盯着代码并问“这是谁做的?!”时,答案总是我。通常是我很久以前做的事情,我已经忘记了为什么必须这样做。如果不是我,那么它会给我一个线索,让我去问别人为什么他们这样做以及为什么必须这样做。
git bisect
我最喜欢的是 git bisect
。它通过对提交进行二分搜索来帮助识别引入错误的提交。简单易用但非常有效。
此外,如果我创建一个脚本来告诉我当前源代码是好还是坏,那么 git bisect run
会自行找出一切!
git stash
在工作中,我必须处理客户项目,以便重现特定的行为类型。git stash
命令允许我在对要还原的项目应用更改后非常快速地返回到初始状态。
轻松 git stash
!在编写较长的代码时,我经常因紧急事项(错误修复)而分心。我喜欢它的详细程度。它与我的大脑工作方式相符。但这不仅是因为分心于更紧急的事情。有时,stash
服务于更高的目的:需要追逐与已解决的问题不同的解决方案。也许它更优雅或更混乱。也许它只是一张白纸,一个可能一无所获或有所作为的间歇期。无论哪种方式,我都可以随时从中弹出并返回到我正在进行的工作。
我喜欢使用 git stash
并能够存储我不确定的更改,并能够在以后调用它们。这是能够随意尝试一个想法的好方法。
git push
我喜欢 git push
的第一个原因是它可以让您与他人分享您的工作——您的代码!第二个原因是 push --force
被认为是有害的和破坏性的,但我喜欢将其视为伴随着巨大责任的强大力量。😊
我的实用答案:git add -p
因为它允许我在提交代码之前进行额外的审查步骤。此外,我可以快速添加相关的更改,然后处理掉任何伪代码或调试废话。
我的真实答案:git push
因为它让我想起了 Lupe Fiasco 的歌曲“Kick, Push”,也意味着“我做了这件事,剩下的就是打开一个 PR。”
[ 使用我们更新的 Git 速查表 掌握此命令和更多命令。 ]
git merge
我最喜欢的 Git 命令是 git merge
。具体来说,我喜欢使用以下命令将开发分支合并到主分支:
$ git merge --strategy recursive -X theirs 3.17.x
recursive
合并策略中的 theirs
选项合并来自他们方面的更改,只要这些更改与它们要合并到的内容不冲突。
如果您知道在进行合并时永远不想覆盖本地值,则 -Xours
标志是一个非常节省时间的工具,尤其是在用于在镜像仓库之间同步代码时。如果它发现冲突,它会强制 Git 保留本地值并忽略任何传入的更改。
git reset
由于我发现自己经常不得不放弃更改或需要确保我的本地分支与远程分支同步,所以我经常使用 git reset
。我还发现它是一个有用的命令,因为它允许我重置我的分支并在我的仓库历史记录中回溯。
git reflog 还是 rebase?
命令 git reflog
是我的救星,但 git rebase -i
是我的最爱,因为我喜欢重写历史。
您的 git 命令
有很多 Git 命令可供选择,那么您最喜欢哪个?Git 是否缺少您梦想中的命令?请在评论中告诉我们!
评论已关闭。