需要一些关于git命令的帮助?问问Copilot CLI吧!
GitHub Copilot CLI有三个别名:
??
::询问一个通用的shell命令git?
:询问一个git
命令gh?
:询问 GitHub CLI 命令
今天我玩了一下 git
? 来测试建议的准确性,以及获得正确的命令有多容易。你可以在文章末尾的视频找到。
剧透:如果你在不了解AI生成的命令的情况下运行这些命令,结果是……不可预知的 😅
无害的例子
在视频的开头,你会看到我问了一个相当简单的问题,基本上是从main创建一个新的分支。
建议的代码是
git switch -c <branch> main
我很高兴,所以我运行命令并…
(eval):1: no such file or directory: branch
等等,什么?啊,我忘了把 <branch>
换成实际的分支名称🤦♂️。
这完全是我的错,但幸运的是没有发生什么坏事,我修改了查询并设置了正确的名称。
潜在的有害例子
然而,在视频的后面,我试图移动和删除提交,第一个建议是:
git reset --hard HEAD~1
想象一下,在不了解它的作用的情况下运行它……好吧,当然,用 reflog
你可以恢复丢失的提交,但如果你不知道,你可能会因为刚刚丢失的所有修改而感到恐慌。这似乎不是一个很酷的情况。
实际上,在写这篇文章的时候,我意识到我可以在视频中直接问这个问题:
git? recover the last hard reset commit
我现在做了,第一个建议是:
──────────────────── Command ──────────────────── git reflog git reset --hard HEAD@{1} ────────────────── Explanation ────────────────── ○ git reflog lists all commits that are no longer referenced by any branch. ○ git reset resets the current branch to a previous commit. ◆ --hard means that we also discard any changes made to the files in the working directory. ◆ HEAD@{1} specifies that we reset to the commit one before the current one.
如果你只是不记得语法,这很好,但如果你不确定你在做什么……想象一下,被人工智能告知要恢复硬重置,你需要再做一次硬重置。那不是很吓人吗?让我知道你的想法!
有趣的事实
当我开始录制视频时,我并没有意识到我打开了Copilot Voice。在某些时候,我说了这样的话:
I’m on a branch called copilot-x-test, but is it correct?
(我在一个名为copilot-x-test的分支上,但它是正确的吗?)
一秒钟后,我听到一个声音从我的扬声器里传出来:
It depends on the task. You should make sure that the task is valid and reliable before taking it
(这取决于任务的情况。在接受任务之前,你应该确保该任务是有效和可靠的。)
啊,是Copilot的声音!
完整Demo
总之,这里有完整的视频,我在那里玩Copilot X CLI,询问 git
命令,并给你我对AI生成的建议的个人想法。
评论留言