新聞中心
創(chuàng)建本地工作倉(cāng)庫(kù)有兩種方法:
- git init 在本地初始化一個(gè)git倉(cāng)庫(kù)
- git clone 直接克隆一個(gè)遠(yuǎn)程的git倉(cāng)庫(kù)
方法一:
我們?cè)谄渲幸粋€(gè)目錄下,點(diǎn)擊鼠標(biāo)右鍵,然后啟動(dòng)git bash。輸入下面命令:
git init
這條命令即可創(chuàng)建一個(gè)git倉(cāng)庫(kù)。
然后再當(dāng)前目錄下,會(huì)創(chuàng)建一個(gè).git
的隱藏文件夾:
里面包含了一個(gè)git初始化倉(cāng)庫(kù)所必須的文件(每個(gè)文件的作用暫時(shí)還沒研究),如下:
方法二:
使用git clone命令。
git clone 遠(yuǎn)程倉(cāng)庫(kù)地址
# 可以重命名克隆的遠(yuǎn)程倉(cāng)庫(kù)名稱
git clone 遠(yuǎn)程倉(cāng)庫(kù)地址 新的倉(cāng)庫(kù)名稱
2. 新建、修改文件后提交更新到本地倉(cāng)庫(kù)上一篇文章介紹到,git 的工作過程其實(shí)都是圍繞下面這幅圖進(jìn)行的:
所以,我們初始化了倉(cāng)庫(kù)之后,根據(jù)這幅圖進(jìn)行g(shù)it的一些基本命令操作。
Git 文件的4種狀態(tài):
- untracked。未跟蹤,表示文件不受git管理,我們新建的文件就是處于 這種狀態(tài)。
- staged。已暫存,表示已對(duì)修改的文件做了標(biāo)記,使之包含在下次要提交的文件的跟蹤列表中changes to be committed
- committed。已提交,表示文件已經(jīng)被提交到本地倉(cāng)庫(kù)committed
- modified。已修改,表示文件內(nèi)容已被修改,但沒有做標(biāo)記changes not staged for commit
下面我們就實(shí)例演示下這4種工作狀態(tài)。
2.1 查看工作目錄下的文件狀態(tài)git status
git status 命令用于查看倉(cāng)庫(kù)當(dāng)前狀態(tài),顯示有變更的文件。
示例:
當(dāng)工作區(qū)文件數(shù)量很多時(shí),可以使用 -s 參數(shù)輸出簡(jiǎn)短的信息,即:git status -s
git add<文件名或者目錄># 文件名支持通配符*的形式,比如說 *.c 就是表示工作區(qū)中所有的c文件
# 如果是目錄的話,那么會(huì)遞歸跟蹤該目錄下的所有文件
該命令相當(dāng)于把工作區(qū)的文件,添加到了暫存區(qū),其實(shí)就是相當(dāng)于git跟蹤了這個(gè)文件。
- 文件名支持通配符*的形式,比如說 *.c 就是表示工作區(qū)中所有的c文件
- 如果是目錄的話,那么會(huì)遞歸跟蹤該目錄下的所有文件
git add .
相當(dāng)于就是當(dāng)前目錄的全部文件都添加到暫存區(qū)。 . 表示當(dāng)前目錄, … 表示上一級(jí)目錄
示例:
使用 git add 命令跟蹤了文件之后,就可以提交更新到本地倉(cāng)庫(kù)了,使用如下命令:
git commit
注意:
- 提交前已經(jīng)設(shè)置好了用戶名和郵箱
- 該命令只是將暫存區(qū)的內(nèi)容提交到倉(cāng)庫(kù),我們可以在提交前使用 git status 命令查看是否有改變沒有添加到暫存區(qū)。
我們調(diào)用這條命令的時(shí)候,都會(huì)打開 vim 編輯器,然后用戶可以輸入提交更改的信息,然后保存更改信息就可以提交成功了。
但是如果我們不熟悉vim編輯器,而且提交的信息又比較簡(jiǎn)單的話,我們可以輸入一條字符串來保存更改的信息。
# 提交整個(gè)暫存區(qū)的文件
git commit -m "<提交信息>"
#只提交暫存區(qū)指定的文件
git commit [file1] [file2] ... -m "<提交信息>"
示例:
每次提交其實(shí)相當(dāng)于記錄了一次快照,后面我們?cè)谌魏螘r(shí)候都可以退回到本次狀態(tài)。
2.4 修改文件我們把上面新建的 test.c 文件進(jìn)行修改。
vim test.c
vim編輯器打開文件(或者使用其他編輯器都可以),修改內(nèi)容:
然后回到vim命令狀態(tài),保存退出即可。
2.5 添加改動(dòng)的文件到暫存區(qū)前面已經(jīng)使用過git add
命令添加文件到暫存區(qū)了,但是那個(gè)文件是新建的文件,還沒有跟蹤的。
我們修改之后,查看文件狀態(tài):
暫存修改的文件也是git add
命令,只是前面是新的文件添加到暫存相當(dāng)于跟蹤了這個(gè)文件。現(xiàn)在是已經(jīng)跟蹤的文件被修改了,然后添加到暫存區(qū)。
git diff
該命令可以比較在工作區(qū)(也就是我們的工作目錄)中已經(jīng)被修改的文件,和已經(jīng)寫入暫存區(qū)的文件,他們之間的差異。
git status
命令其實(shí)可以列出哪些文件被修改了,但是不能列出文件修改的內(nèi)容,而git diff
是可以的。
- 尚未緩存的改動(dòng):git diff ,其實(shí)就是現(xiàn)在是暫存區(qū)和工作區(qū)之間的差異。
- 查看已緩存的改動(dòng): git diff --cached 或 git diff --staged ,顯示暫存區(qū)和最近一次提交(commit)的差異。
- 查看已緩存的與未緩存的所有改動(dòng):git diff HEAD
- 顯示摘要而非整個(gè) diff:git diff --stat
我們把上面的 test.c 文件進(jìn)行修改,然后保存退出:
查看文件狀態(tài),和改動(dòng):
我們對(duì)文件更改后,一般需要先使用git add
命令,先添加到暫存區(qū),然后才能使用git commit
命令提交更新到本地倉(cāng)庫(kù)的。
每次都經(jīng)過 git add 這一步太過繁瑣,所以我們可以使用 -a 參數(shù)來直接跳過這一步,直接提交更新,命令如下:
# 提交整個(gè)暫存區(qū)的文件
git commit -a -m "<提交信息>"
#只提交暫存區(qū)指定的文件
git commit [file1] [file2] ... -a -m "<提交信息>"
其實(shí)就是多了 -a 參數(shù),下面看看示例圖:
如果只是簡(jiǎn)單地從工作目錄中手工刪除文件,運(yùn)行 git status 時(shí)就會(huì)在 Changes not staged for commit 的提示。
所以我們必須使用 git 的命令進(jìn)行刪除文件。
1、將文件從暫存區(qū)和工作區(qū)中一起刪除:
git rm<文件名>
該命令相當(dāng)于把源文件也刪除了。
2、如果想把文件從暫存區(qū)域移除,但仍然保留源文件。換句話說,僅是從跟蹤清單中刪除,使用 –cached 選項(xiàng)即可:
git rm --cached<文件名>
3、刪除目錄
該命令和上面兩條命令一樣,指不定多了 -r 參數(shù),表示刪除目錄。該命令會(huì)遞歸刪除本目錄下的所有文件和子目錄。
git rm –r<目錄名>
示例:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:二、Git本地倉(cāng)庫(kù)基本操作——?jiǎng)?chuàng)建Git倉(cāng)庫(kù)、提交更新或刪除文件-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://ef60e0e.cn/article/ddogsc.html