git commit -m 与 git commit -am的区别
字面解釋的話,git commit -m用于提交暫存區(qū)的文件;git commit -am用于提交跟蹤過的文件
要理解它們的區(qū)別,首先要明白git的文件狀態(tài)變化周期,如下圖所示
工作目錄下面的所有文件都不外乎這兩種狀態(tài):已跟蹤或未跟蹤。已跟蹤的文件是指本來就被納入版本控制管理的文件,在上次快照中有它們的記錄,工作一段時(shí)間后,它們的狀態(tài)可能是未更新,已修改或者已放入暫存區(qū)
下面以一個(gè)實(shí)例說明
在項(xiàng)目文件夾中新增一個(gè)文件如'a.txt'時(shí),該文件處于untracked未跟蹤狀態(tài)。未跟蹤狀態(tài)的文件是無法提交的
接下來,使用git add a.txt,使其變成已跟蹤狀態(tài)
這時(shí),如果使用git commit -m 'add a.txt'就可以順利提交了
但是,git commit -m 和 git commit -am的區(qū)別在哪里?在于a.txt文件修改之后的處理
下面,向a.txt添加內(nèi)容'a'
文件a.txt處于已跟蹤,但未暫存狀態(tài)。這時(shí),如果使用git commit -m是無法提交最新版本的a.txt的,提交的只是最開始空內(nèi)容的舊版本a.txt
要提交新版本a.txt,即內(nèi)容為'a'的a.txt,則需要使用git add a.txt,將新版本的a.txt放到staged暫存區(qū),然后才能使用git commit -m進(jìn)行提交
而如果使用git commit -am,則可以省略git add a.txt這一步,因?yàn)間it commit -am可以提交跟蹤過的文件,而a.txt一開始已經(jīng)被跟蹤過了
總結(jié),使用這兩個(gè)命令區(qū)別的關(guān)鍵就是git add命令
git add命令是個(gè)多功能命令,根據(jù)目標(biāo)文件的狀態(tài)不同,此命令的效果也不同:可以用它開始跟蹤新文件,或者把已跟蹤的文件放到暫存區(qū),還能用于合并時(shí)把有沖突的文件標(biāo)記為已解決狀態(tài)等
我們需要用git add命令來跟蹤新文件,但如果使用git commit -am可以省略使用git add命令將已跟蹤文件放到暫存區(qū)的功能
轉(zhuǎn)載于:https://www.cnblogs.com/FineDay/p/9191144.html
總結(jié)
以上是生活随笔為你收集整理的git commit -m 与 git commit -am的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows,远程计算机:X.X.X.
- 下一篇: IDEA工具创建项目并提交码云和一些基本