Git-解读git status的讯息,了解工作资料夹的版控状态

这是一个新建的Angualr专案,完全没有任何异动。
http://img2.58codes.com/2024/20112573akG5ITv8vY.png

初始的git状态

输入git status
http://img2.58codes.com/2024/20112573WHx9bRP6pC.png
看看git status所显示的讯息是什么。

on branch master

表示目前所在的分支(master分支),预设分支。

nothing to commit, working tree clean

表示目前没有任何异动需要commit,这边的commit是指每次异动的版本,或称作节点。
working tree clean表示目前正在工作的资料夹非常乾净,因为完全没有任何增删修。

删除档案

删除3个档案
http://img2.58codes.com/2024/20112573P2z089ziTV.png

透过git status,看看讯息有何变化。
http://img2.58codes.com/2024/20112573vCJkRiEMEM.png

Changes not staged for commit:
表示,这次所变更的资料(红字),还无法加入到这次的commit之中。
档名前面的deleted,表示这次的变更是删除档案。

如果执行commit的话,会失败,并收到错误讯息。
http://img2.58codes.com/2024/20112573fykgHfhBvh.png
讯息会再次警告,这次的改变并没有加入commit之中(no changes added to commit),从log可以看出,确实没有commit。

回到刚刚git status那张图,git已经有给提示:
(use "git add/rm <file>..." to update what will be committed)
表示可以透过add(新增)/rm(移除)档案,将这次的异动update至commit中。

使用add指令只将README.md加入commit之中。
http://img2.58codes.com/2024/20112573PIpS5qpiRk.png
add完之后,再次输入git status,发现讯息有所改变:
Changes to be committed:
表示删除README.md的操作(绿色),準备加入commit之中。
但下面的2个档案操作(红色),依旧是同样的警告。

再次执行commit。
http://img2.58codes.com/2024/20112573PcHtyQz16T.png
确实建立一个只包含这次删除README.md的commit。

执行git status。
http://img2.58codes.com/2024/20112573VGgnjGWC06.png
只剩下未加入commit的资料删除操作。
至于删除README.md的操作已加入commit之中,所以这次就不会再显示了。

接下来,把剩下的操作都加入commit,这次在add之后空一格再加点(.),表示将所有的异动操作都加入。
http://img2.58codes.com/2024/20112573kvirTHXPkm.png
OK!已成功加入。
但,如果想回复这次的操作呢?

取消已被add的档案

git有给提示:(use "git reset HEAD <file>..." to unstage)
将所有的异动,回复到unstage状态。
<file>,档名是选择性输入。
HEAD表示指向目前工作目录的最新版本,最近一次的commit。
http://img2.58codes.com/2024/20112573dNYBhvm3V5.png
此时,又回复到刚刚的状态。
该指令,只是回复异动状态,无法改变资料夹的档案结构,删除的档案不会回复。

救回误删的档案

如果,真的手残,把档案误删,git也有办法将档案救回来。
http://img2.58codes.com/2024/20112573wfTVbBIe2r.png
(use "git checkout -- <file>..." to discard changes in working directory)
表示我们可以取消这次的变更(discard changes),在工作目录中(working directory)

将tslint.json救回来
http://img2.58codes.com/2024/201125735XZqjbdGct.png
目前只剩一个档案的操作是unstage状态

从资料夹看出,档案确实救回来了
http://img2.58codes.com/2024/20112573YHPQrBuXVe.png

回复修改的程式码

现在,我们来修改tslint.json内容,将每行长度改为150。

"max-line-length": [      true,      150    ]

异动的操作状态变成modified
http://img2.58codes.com/2024/20112573bg9GlFmiUs.png

万一把档案改坏,反悔了,一样可以使用git checkout -- tslint.json回复修改前的内容
http://img2.58codes.com/2024/20112573OpDhkUTIeX.png
只剩一个unstage状态。
这时刚刚修改的内容,会回复到最初的140。

"max-line-length": [      true,      140    ]

结论

看懂git status的讯息提示,是学好git的第一步,
在遇到问题时,才不会毫无头绪,不知如何解决。

本文为观看网路教学的学习笔记。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章