將尚未進(jìn)行版本控制的本地目錄轉(zhuǎn)換為Git倉庫,從其它服務(wù)器克隆一個(gè)已存在的Git倉庫,這兩種方式都能夠在自己的電腦上得到一個(gè)可用的Git倉庫。
如果自己有一個(gè)尚未進(jìn)行版本控制的項(xiàng)目目錄,想要用 Git 來控制它,需要執(zhí)行如下兩個(gè)步驟:
① 在項(xiàng)目目錄中,通過鼠標(biāo)右鍵打開“Git Bash”
② 執(zhí)行 git init 命令將當(dāng)前的目錄轉(zhuǎn)化為 Git 倉庫
git init 命令會(huì)創(chuàng)建一個(gè)名為 .git 的隱藏目錄,這個(gè) .git 目錄就是當(dāng)前項(xiàng)目的 Git 倉庫,里面包含了初始的必要文件,這些文件是 Git 倉庫的必要組成部分。
工作區(qū)中的每一個(gè)文件可能有 4 種狀態(tài),這四種狀態(tài)共分為兩大類,如圖所示:
Git 操作的終極結(jié)果:讓工作區(qū)中的文件都處于“未修改”的狀態(tài)。
可以使用 git status 命令查看文件處于什么狀態(tài),例如:
在狀態(tài)報(bào)告中可以看到新建的 index.html 文件出現(xiàn)在 Untracked files(未跟蹤的文件) 下面。未跟蹤的文件意味著 Git 在之前的快照(提交)中沒有這些文件;Git 不會(huì)自動(dòng)將之納入跟蹤范圍,除非明確地告訴它“我需要使用 Git 跟蹤管理該文件”。
使用 git status 輸出的狀態(tài)報(bào)告很詳細(xì),但有些繁瑣。如果希望以精簡的方式顯示文件的狀態(tài),可以使用如下兩條完全等價(jià)的命令,其中 -s 是 –short 的簡寫形式:
#以精簡的方式顯示文件狀態(tài)
git status -s
git status --short
未跟蹤文件前面有紅色的 ?? 標(biāo)記,例如
使用命令 git add 開始跟蹤一個(gè)文件。 所以,要跟蹤 index.html 文件,運(yùn)行如下的命令即可:
git add index.html
此時(shí)再運(yùn)行 git status 命令,會(huì)看到 index.html 文件在 Changes to be committed 這行的下面,說明已被跟蹤,并處于暫存狀態(tài):
也可以以精簡的方式顯示文件的狀態(tài)新添加到暫存區(qū)中的文件前面有綠色的 A 標(biāo)記
現(xiàn)在暫存區(qū)中有一個(gè) index.html 文件等待被提交到 Git 倉庫中進(jìn)行保存。可以執(zhí)行 git commit 命令進(jìn)行提交,其中 -m 選項(xiàng)后面是本次的提交消息,用來對(duì)提交的內(nèi)容做進(jìn)一步的描述:
git commit-m"新建了index.html文件"
提交成功之后,會(huì)顯示如下的信息:
提交成功之后,再次檢查文件的狀態(tài),得到提示如下:
證明工作區(qū)中所有的文件都處于“未修改”的狀態(tài),沒有任何文件需要被提交。
8. 對(duì)已提交的文件進(jìn)行修改
目前,index.html 文件已經(jīng)被 Git 跟蹤,并且工作區(qū)和 Git 倉庫中的 index.html 文件內(nèi)容保持一致。當(dāng)我們 修改了工作區(qū)中 index.html 的內(nèi)容之后,再次運(yùn)行 git status 和 git status -s 命令,會(huì)看到如下的內(nèi)容:
文件 index.html 出現(xiàn)在 Changes not staged for commit 這行下面,說明已跟蹤文件的內(nèi)容發(fā)生了變化,但還沒有放到暫存區(qū)。
注意:修改過的、沒有放入暫存區(qū)的文件前面有紅色的 M 標(biāo)記。
目前,工作區(qū)中的 index.html 文件已被修改,如果要暫存這次修改,需要再次運(yùn)行 git add 命令,這個(gè)命令 是個(gè)多功能的命令,主要有如下 3 個(gè)功效:
① 可以用它開始跟蹤新文件
② 把已跟蹤的、且已修改的文件放到暫存區(qū)
③ 把有沖突的文件標(biāo)記為已解決狀態(tài)
再次運(yùn)行 git commit -m “提交消息” 命令,即可將暫存區(qū)中記錄的 index.html 的快照,提交到 Git 倉庫中進(jìn)行保存: