[git车轮向前进]git控制状态流转的关系与命令
git做为一个强大的代码版本管理软件,在我们的开发过程中时刻协助着我们。本次我们就聊一聊文件状态流转。
我们的版本库里面的文件一共4种状态,untracked, modified, staged, commited。
一个未经修改的文件被添加到git中之后将会是staged状态,此时我们运行git commit将会使这个文件变为committed状态。
变为committed状态之后,git就为该项目生成了一个snapshot,我们就可以将其push到github中。
一个被commit的文件如果被修改,其状态又会变为modified状态,等待新的add和commit。
如果我们想将一个文件从项目中除名,可以采用git rm命令。
不加--cached参数的rm命令将会物理删除文件,添加该选项将会把文件从git项目中删除,但是不物理删除。文件的状态也变为untracked状态。
git中文件状态转换关系如下图:
所使用的命令如下:
git add . /* add untracked file */ git commit -m "feat:message" git reset --soft HEAD~1 git reset