1.檢查當前文件狀態 -- git status git diff git diff --staged
git status :我們可以使用 git status 來查看文件所處的狀態。當運行 git status 之后,出現類似下面輸出:
$ git status
On branch master
nothing to commit, working directory clean
說明,現在的工作目錄非常干凈,換句話說,所有的已跟蹤文件在上次提交之后都未被修改過。
如果你想要知道具體修改了什么地方,可以使用 git diff 命令。
1. git diff :查看尚未暫存的文件更新了哪些部分。
2. git diff --staged :查看已暫存的文件更新了哪些部分。
2.跟蹤新文件 -- git add
當在工作目錄新建一個文件,運行 git status ,會顯示這個文件是untracked狀態。這時候需要使用 git add 將這個文件加入暫存區,也就是告訴Git需要去跟蹤這個文件。
git add 使用文件或者目錄的路徑作為參數;如果參數是目錄的路徑,那么將該目錄下所有的文件加入暫存區,Git將會跟蹤這個目錄下面的所有文件。
3.暫存已修改文件 -- git add --(可以將這個命令理解為:添加內容到下一次commit中)
當修改了Git追蹤的一個文件之后,運行 git status 會看到 Changes not staged for commit ,說明已跟蹤的文件發生了變化但是還沒有被加入到暫存區,這時候需要運行 git add 將該文件放入暫存區。
git add 是一個多功能命令:
1.使用它跟蹤新文件;
2.將已跟蹤的文件加入到暫存區;
3.還能用於合並時將有沖突的文件標記為已解決的狀態。
注意: git commit 只會講暫存區的文件提交到Git倉庫中,不在暫存區中的文件是不會被提交的。比如:當你運行 git add README 之后,將README文件加入了暫存區,這時候你又修改了README文件,但是沒有運行 git add ,這時候如果直接提交,那么只會講暫存區中的README版本的文件提交到Git倉庫。你對README新做的修改不會被提交到Git倉庫。
4.忽略文件 -- .gitignore文件
一般我們總會有一些文件不想納入Git進行管理,同時也不希望他們總出現在未跟蹤文件列表。這時候只需要在.gitignore文件中指定這些你不想被Git進行管理的文件,這樣一來當你在提交代碼到遠程倉庫的時候也就不會將這些文件上傳上去了。GitHub 有一個十分詳細的針對數十種項目及語言的 .gitignore 文件列表,你可以在https://github.com/github/gitignore找到它.
5.提交更新 -- git commit
在暫存區准備完畢之后,就可以commit了。注意:在提交之前一定要確認還有什么沒有修改過的活新建的文件還沒有 git add 過,否則commit的時候不會記錄這些還沒暫存起來的變化,這些修改過的文件只會保留在本地磁盤(也就是工作區)。在每次提交之前,可以使用 git status 查看一下,文件是不是已經都暫存起來了。
1. git commit 如果不指定-m參數,那么git會打開一個編輯器,讓你輸入提交信息。
2. git commit -m <info> 指定-m參數,可以在后面直接指定提交信息。(推薦使用)
3. git commit -a -m <info>有時候,在修改某一個已經被track的文件之后,可以直接使用 git commit -a -m "info" 跳過add步驟而將這個文件提交。
注意:這條命令會將已經被track的文件加入到暫存區,然后進行提交;對於沒有被track的文件(例如新添加的文件),在修改之后是不能使用這條命令直接進行提交的。
commit記錄的是放在暫存區域的快照,每一次提交操作都是對項目做一次快照,以后可以回到這個狀態,或者進行比較。
6.移除文件 -- git rm
執行以下命令:刪除一個文件。
$ git rm <filename> $ git commit -m <info>
如果被刪除的文件修改過,而且已經被放入了暫存區,那么需要加上 -f 參數,強制刪除。這是一種安全特性,用於防止刪除還沒有被添加快照的數據,這種數據無法被Git恢復。
如果你只是想從暫存區刪除文件,但是工作區的文件保持不變(將文件保存在磁盤),也就是說將文件保存在磁盤但是不想讓Git進行跟蹤,使用如下命令即可:
$ git rm --cached <filename>
7.移動文件 -- git mv
可以使用 git mv 來講文件重命名。命令格式如下:會將oldFile重新命名為newFile
$ git mv <oldFile> <newFile>
這條命令會:1.將文件改名;2.將改名之后的文件add進暫存區。等價於下面三條命令。
$ mv oldFile newFile $ git rm oldFile $ git add newFile