Git之旅(13):常见场景与技巧(一)

  • A+
所属分类:Git  澳门金沙游戏网站

  

博主会将与Git有关的知识点总结到"通俗易懂Git入门系列"文章中,如果你对Git不是特别了解,请按照顺序阅读"Git系列",以便站在前文的基础上理解新的知识点。

 

之前,为了文章之间的逻辑连贯性,好多零散的知识点没有总结,不过这并不代表着这些零散的知识点没有用,相反,这些点在某些场景下非常好用,这篇文章就先来总结一些吧。

 

为了方便演示,我们先来创建一个测试仓库,命令如下:

如上例所示,我们在测试仓库中创建了一个测试文件testfile1,然后创建了一个初始化的提交。

 

现在,我继续修改testfile1文件,命令如下:

如上所示,我在testfile1中追加了一行新内容,如果我想要将新的修改创建为提交,那么应该先将这次的修改添加到暂存区,然后再创建提交,此时,如果你使用"git status"命令查看状态,会看到我们还没有将testfile1的最新修改添加到暂存区,如下所示

正常来说,我们应该先执行"git add"命令,然后再执行"git commit"命令创建提交,其实,我们还有更加方便的方法,就是直接执行如下命令:

上述命令的作用就是将暂存操作和提交操作一次性完成,其效果相当于我们先执行了"git add testfile1"命令,然后又执行了git commit -m "second commit"命令,我们来执行一下,看一下效果,如下:

如上例所示,执行git commit -am "second commit"命令后,第二个提交就被创建了,省去了手动执行git add命令的步骤。

需要注意的是,如果你的工作区中存在完全新创建的文件(从未被git跟踪过,刚刚从工作区中新建出来),那么"git commit -am"命令并不会将新建的文件添加到暂存区。

 

当你觉得,目前工作区中的所有变更(被跟踪过的文件的变更)适合创建在同一个提交中时,使用"git commit -am"命令还是很方便的,这样可以省略一步git add的操作。

 

在前文中,我们一直在添加文件,修改文件,从来没有删除过文件,现在我们来测试一下删除文件的操作,就拿删除testfile1文件为例吧, 示例操作如下:

如上例所示,我执行了删除命令,删除了testfile1文件,执行删除命令后,在文件系统中已经看不到testfile1文件了,此时执行"git status"命令,会发现git提示我们,有一个变更还没有暂存,也就是说,删除文件的操作,也会被git理解成一个变更,既然是变更,就要从工作区添加到暂存区以后,才能够创建在提交中,从"git status"命令的提示信息中可以看到,我们可以使用"git add"命令或者"git rm"命令将这个删除文件的变更添加到暂存区,那么我们一起来操作一下,如下所示:

执行git add testfile1命令后,删除testfile1文件的变更就添加到了暂存区,之后,我们就能够直接进行提交了。

总结一下,上述删除testfile1文件的步骤一共执行了两步操作:

第一步:在文件系统中删除testfile1文件。

第二步:在git中将删除文件的变更添加到暂存区。

 

其实,上述两步操作可以通过一条命令来完成,这条命令就是刚才提到过的"git rm"命令

我们可以在没有从文件系统中删除testfile1的情况下,直接执行如下命令

执行完上述命令后,你会发现文件系统中的testfile1被删除了,而且使用"git status"命令查看,会发现变更已经自动添加到了暂存区,相当于一条命令完成了两步操作(同样需要注意,我们所说的被删除的文件,也是被git跟踪过的文件),此处就不进行示例了,快动手实验一下吧。

 

除了删除文件,我们可能经常会有对文件重命名的需求(对已经被git跟踪过的文件重命名),我们来模拟一遍,操作如下:

如上述操作所示,我先使用mv命令在文件系统中重命名了testfile1,将testfile1重命名为tf1,之后,使用"git status"命令查看,发现git会把重命名的操作理解成先删除了testfile1,又创建了tf1,之后,我将变更添加到了暂存区,发现git自动将之前的变更识别为了重命名操作,那么,有没有更加方便的方法呢?必须有的,方法就是,不在文件系统中重命名testfile1,而是直接执行如下命令即可。

同样,为了方便演示,我将仓库还原成了没有重命名之前的状态,然后执行如下命令进行演示:

如上述命令所示,当我们使用"git mv"命令重命名文件后,重命名操作会自动添加到暂存区,从而省略了手动执行"git add"命令的步骤,还是很方便的。

 

 

小结

上述命令表示:省略"git add"操作,自动完成暂存并创建提交,换句话说就是,直接将工作区中的所有变更创建成一个提交,注意:完全新建没有被git跟踪过的文件不会自动暂存。

 

上述命令表示:删除testfile文件,并自动将变更暂存,效果相当于在文件系统中删除testfile,然后手动暂存。

 

上述命令表示:将testfile重命名成tf,并自动将变更暂存,效果相当于在文件系统中重命名了testfile,然以手动暂存。

 

好了,这篇文章就先总结到这里,希望能够对你有所帮助,再见啦~

  

weinxin
我的微信公众号
关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~
朱双印

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • avatar Ticsmyc 0

      从第一篇看过来的~ 焦急等待下一篇~~~

      • avatar 辣鸡咔 1

        感谢分享