12個程序員必知必備的Git命令
為了使用Git,需要知道基本命令,如git status、git add、git checkout、git push等,本文將為大家介紹幾個最常見的的Git命令:
1 git status
此命令將告訴開發人員有關當前工作目錄中已跟蹤和未跟蹤文件的信息。
可以使用此命令查找已更改并需要提交的文件。
user@host /c/git/course (master)
$ git status
# 在分支 master 上
沒有要提交的內容,工作目錄干凈
由于這是一個干凈的檢查,沒有任何更改,因此git status說沒有要提交的內容,但是現在如果創建一個名為“readme.txt”的文件并再次運行git status,則會看到差異,并且它將高度指出readme.txt是新文件并且未跟蹤,帶有紅色輸出。
$ git status
# 在分支 master 上
# 未跟蹤的文件:
# (使用 "git add ..." 將其包含在提交中)
#
# readme.txt
沒有提交的內容,但存在未跟蹤的文件(使用 "git add" 跟蹤)
2 git add
此命令將文件添加到暫存區,這意味著現在git已開始跟蹤該文件。在調用git commit之前,不會提交該文件,但是git將跟蹤任何更改。
例如,在上一個示例中創建的文件“readme.txt”到目前為止尚未被跟蹤。現在使用git add命令來跟蹤該文件。
$ git add readme.txt
現在該文件已添加到暫存區,如果再次運行git status,則會看到不同的輸出,還會顯示文件名以綠色顯示,以指示它已被跟蹤但尚未提交。
$ git status
# 在分支 master 上
# 要提交的更改:
# (使用 “git reset HEAD …” 取消暫存)
#
# 新文件:readme.txt
#
3 git branch
此命令用于在Github中創建分支。可以使用此命令創建分支、修改分支和刪除分支。
例如:
$ git branch F1_BRANCH
將從您所在的主干創建一個新分支。例如,如果您在主分支上,則F1_BRANCH將從HEAD分支創建。
4 git checkout
可以使用此git命令放棄本地更改并從存儲庫獲取新副本。
$ git checkout HEAD
將放棄自上次提交以來的所有未暫存更改或自HEAD以來的所有未暫存更改。它最適合僅本地撤消,因為它不會影響團隊依賴的遠程分支的提交歷史記錄。
還可以使用git checkout命令從特定分支下載代碼。例如:
$ git checkout F1_BRANCH
將檢出F1_BRANCH中的代碼,并更新您的工作目錄以匹配。
5 git log
此命令用于查看所有提交歷史記錄。還可以使用此命令查看文件的歷史記錄,如下例所示:
$ git log -p readme.txt
6 git diff
這是另一個有用的git命令,用于查看本地更改的所有文件。該命令還將顯示所有文件中發生了什么更改。
$ git diff readme.txt
提示:您可以提供文件名以僅顯示一個文件的更改。
7 git blame
這是另一個較少知道的git命令,可用于查找已更改文件的人員,如下所示:
$ git blame readme.txt
以上命令將顯示誰更改了此文件以及添加了什么內容以及何時添加。
8 git reflog
這是許多程序員忽略的另一個git命令。可以使用此git命令顯示本地存儲庫的HEAD的更改日志。
$ git reflog
提示:此命令適用于查找丟失的工作。實際上,最后四個git命令都對檢查事物有用。
9 git reset
可以使用此命令放棄任何本地提交。例如:
$ git reset --hard HEAD
放棄自最近提交以來的所有已暫存和未暫存更改。您可以將HEAD更改為任何提交哈希以放棄自那次提交以來的更改。HEAD只是最近提交的一個好指針。
另一方面,硬選項表示已丟棄已暫存和未暫存的更改。
10 git revert
可以使用它來還原遠程分支中的提交。與在提交和單個文件級別上工作的git reset和git checkout不同,git revert僅在提交級別上工作。
$ git revert last_commit
還原或撤消last_commit中更改的影響。值得注意的是,當它將更改還原到存儲庫時,git revert會生成新提交。
可以使用這三個git reset、git checkout和git revert命令來撤消對存儲庫所做的更改,盡管它們之間存在輕微差異。
提示:如果只是使用自己的本地提交而尚未合并到團隊的遠程分支(如master)中,則可以使用其中任何一個命令來撤消更改,但如果已合并并且要使提交無效,則只有git revert是要使用的命令。
11 git clean
可以使用git clean命令刪除本地目錄中的未跟蹤文件。例如,當運行程序時,它可能會在工作目錄中創建一些.log文件,可以使用此命令擺脫它們。
$ git clean -n
可以刪除本地工作目錄中的未跟蹤文件。但是,還應該注意一些有用的標志,例如:
-n標志用于干運行,不會刪除任何內容。
-f標志實際上刪除文件。
而且,可以使用-d標志刪除未跟蹤的目錄。
提示:值得注意的是,默認情況下,.gitignore未跟蹤的文件不會被刪除,但如果需要,可以更改此行為。
12 git commit
此命令用于提交更改。值得注意的是,在git中提交更改僅在本地工作目錄中完成。在使用git push命令之前,更改不會進入遠程分支。
$ git commit -m
允許使用提交消息提交更改。如果要更改消息,則還可以使用
$ git commit --amend
它允許您編輯最近的提交消息。如果有任何內容,則還可以將已暫存的更改添加到最近的提交中。
提示:僅在提交未集成到遠程主分支中時才使用此命令。
這里有一個來自RebelLabs的不錯的Git備忘單,以記住所有基本Git命令:
圖片
這就是每個Java程序員、開發人員、軟件工程師都應該知道的一些最基本的Git命令。希望文章對讀者有所幫助。