https://blog.csdn.net/qq_15037231/article/details/77855051 字面解釋的話,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ū)的功能 ———————————————— 版權(quán)聲明:本文為CSDN博主「斜陽雨陌」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/qq_15037231/article/details/77855051 |
|