git 是一個(gè)常用的代碼管理工具诈嘿,但大家可能更多的是停留在使用上(而且是那一種,可視化界面削葱,點(diǎn)點(diǎn)點(diǎn)的形式)奖亚,甚至不知道各個(gè)命令的具體意義,接下來就掃掃盲吧析砸。
git init
昔字。創(chuàng)建一個(gè)名為 .git
的子目錄,其中包含初始化的 Git 倉庫中所有不可或缺的初始化文件首繁。它們是 Git 倉庫的“骨干”李滴。需要明確的是,這個(gè)命令僅僅是進(jìn)行初始化操作蛮瞄,項(xiàng)目中的文件沒有被跟蹤。
git clone
谆扎。從 Git 倉庫復(fù)制一個(gè)已存在的項(xiàng)目到本地挂捅。復(fù)制涵蓋的內(nèi)容是該 Git 倉庫中幾乎所有的數(shù)據(jù)。而不僅僅是復(fù)制工作中的文件堂湖。當(dāng)執(zhí)行 git clone
命令的時(shí)候闲先,默認(rèn)配置是將遠(yuǎn)程 Git 倉庫中所有文件的每個(gè)版本進(jìn)行拉取。
Git 倉庫的工作目錄中的每一個(gè)文件都具備兩種狀態(tài)之一无蜂,這兩種狀態(tài)是已跟蹤
和未跟蹤
:
-
已跟蹤的文件
是指已被納入版本控制的文件伺糠,在上一次快照中,存在記錄斥季,在工作一段時(shí)間后训桶,狀態(tài)可能是未修改
累驮、已修改
或已放入暫存區(qū)
。 - 在 Git 倉庫的工作目錄中舵揭,除已跟蹤文件以外谤专,其余的都屬于
未跟蹤文件
,這些未跟蹤文件既不存在于上次快照記錄中午绳,又沒有被放入暫存區(qū)置侍。 - 在第一次復(fù)制某個(gè) Git 倉庫的時(shí)候,工作目錄中的所有文件都處于
已跟蹤狀態(tài)
拦焚,并處于未修改狀態(tài)
蜡坊。 - 在文件被編輯后,由于自上次提交后做了修改赎败,因此 Git 將這些文件標(biāo)記為
已修改
秕衙。在這個(gè)過程中,逐步將這些修改過的文件放入暫存區(qū)螟够,然后提交所有已暫存的修改文件灾梦,這就是提交更新的一個(gè)循環(huán)。
git add
妓笙。是個(gè)多功能指令若河,可以跟蹤新文件,可以把已跟蹤的文件放入暫存區(qū)寞宫,還可在合并時(shí)把有沖突的文件標(biāo)記為“已解決”狀態(tài)萧福。這里,我們將 git add
命令理解為“添加內(nèi)容到下一次提交中”辈赋,而不是“將一個(gè)文件添加到項(xiàng)目中”鲫忍。
git rm
。想要從 Git 倉庫中刪除某個(gè)特定文件钥屈,就需要先從已跟蹤文件清單中清除悟民,再完成提交動(dòng)作。我們可以通過git rm
命令完成這項(xiàng)任務(wù)篷就,并附帶從目錄中刪除這個(gè)指定文件射亏。如果只是簡單地從工作目錄中手動(dòng)刪除某個(gè)特定文件,那么竭业,運(yùn)行 git status
命令時(shí)智润,就會(huì)在“Changes not staged for commit” 部分看到先關(guān)狀態(tài)。
如果使用 clone 命令復(fù)制一個(gè)倉庫未辆,那么該命令會(huì)自動(dòng)將這個(gè)倉庫添加為遠(yuǎn)程 Git 倉庫并默認(rèn)以 origin
為簡寫名稱窟绷。
git push [remote-name] [branch-name]
。將 master 分支推送至 origin 服務(wù)器時(shí)咐柜,該命令可以將所做的備份推送到遠(yuǎn)程 Git 倉庫兼蜈,相關(guān)命令如下:
git push origin master
上述命令要求復(fù)制的服務(wù)器具備寫入權(quán)限攘残,且之前無推送動(dòng)作,只有這樣饭尝,該命令才能生效肯腕。當(dāng)同時(shí)有復(fù)制動(dòng)作時(shí),非首次推送動(dòng)作會(huì)被拒絕钥平,必須先將上次推送的數(shù)據(jù)拉取并將其合并实撒,這樣才能推送。