回顾之前学过的命令:
1 git init // 初始化一个项目 2 git add // 将文件交给工作区 3 git commit // 提交修改
查看提交日志:
1 git log // 查看提交日志 2 git log --stat // 每次提交文件的变更统计
可进行空的提交,也就是不提交任何文件的修改:
1 git commit --allow-empty
比较差异:
1 git diff // 查看修改后的文件于版本库中文件的差异
修改不能直接提交么?
对于已经commit到版本库中的文件,如果再修改的话,不能直接提交,还是要用git add命令添加一下才能提交。
可以从一下几个命令验证修改后直接提交并没有成功:
1 git diff // 比较差异 2 git log --pretty=oneline // 查看提交日志 3 git status -s // 显示文件的状态, M表示修改了,??表示新增
1 On branch master 2 Changes not staged for commit: 3 modified: welcome.txt 4 5 Untracked files: 6 test.ini 7 8 no changes added to commit
需要针对修改的文件使用git add命令,将修改的文件添加到"提交任务"中,然后才能提交!
对于其他的版本控制系统来说执行add操作是向版本库中添加新文件用的,修改的文件(已被版本控制跟踪的文件)在下次提交时会直接被提交。但是git为啥还要我们做一次add动作呢?
1 git add welcome.txt // 添加文件 2 git diff // 与中间状态以无区别 3 git diff HEAD // HEAD表示版本库的头指针 4 git status 5 git status -s // 输出的M的位置有变化
M位置不同的含义是什么呢?
在执行完git add命令之前,这个M位于第二列(第一列是一个空格),在执行完git add之后,字符M位于第一列,第二列是空白。
位于第一列的字符M:版本库中的文件与处于中间状态——提交任务(提交暂存区,stage)中的文件相比有改动
位于第二列的字符M:工作区当前的文件与处于中间状态——提交任务(提交暂存区,stage中的文件相比有改动。
先不忙着执行git commit命令,再执行一些操作
1 echo "Bye-Bye." >> welcome.txt 2 git status 3 git status -s