本文記錄我在使用git時(shí)的點(diǎn)滴經(jīng)驗(yàn),以需要實(shí)現(xiàn)的功能為出發(fā)點(diǎn),詳細(xì)介紹相關(guān)命令,希望能為日后參考提供幫助。結(jié)合“git命令大全”等全面介紹git命令的文章,可以更深入地掌握git的使用,同時(shí)也希望能幫助到有需要的網(wǎng)友。
- Git簡(jiǎn)介
Git是一款免費(fèi)且開(kāi)源的分布式版本控制系統(tǒng),適用于管理任何規(guī)模的項(xiàng)目。相較于svn集中式版本控制系統(tǒng),Git的最大特點(diǎn)是其分布式特性。
- Git客戶(hù)端下載
在windows系統(tǒng)下,主要有兩款常用的Git客戶(hù)端:一是Git for Windows,二是github Desktop。本文選擇使用GitHub Desktop,并提供了離線(xiàn)安裝包下載。
安裝過(guò)程簡(jiǎn)單,雙擊安裝程序即可,此處不再贅述。安裝完成后,打開(kāi)Git Shell便可執(zhí)行Git命令。值得注意的是,安裝GitHub Desktop后,桌面會(huì)出現(xiàn)兩個(gè)圖標(biāo):
首先,打開(kāi)GitHub圖標(biāo),使用GitHub賬號(hào)登錄,GitHub Desktop將幫助我們創(chuàng)建ssh Key,并通過(guò)郵件通知我們。如果使用Git for Windows,則需手動(dòng)設(shè)置SSH Key,具體教程見(jiàn):git使用SSH密鑰。此外,Git for Windows每次更新遠(yuǎn)程倉(cāng)庫(kù)時(shí),都需要輸入GitHub用戶(hù)名和密碼,解決方法見(jiàn):git for windows 總是提示輸入用戶(hù)名和秘密。
- 命令簡(jiǎn)介
3.1 將遠(yuǎn)程倉(cāng)庫(kù)克隆到本地
此操作類(lèi)似于SVN的check out,只有將遠(yuǎn)程倉(cāng)庫(kù)克隆到本地,才能對(duì)本地代碼進(jìn)行增刪改后再提交到遠(yuǎn)程服務(wù)端。
git clone "[your repository path]" //示例:git clone "https://github.com/dablelv/dablelvweb.git"
注:(1)命令中的中括號(hào)內(nèi)容需替換為相應(yīng)內(nèi)容,后續(xù)命令同理。(2)倉(cāng)庫(kù)地址可在GitHub網(wǎng)站查看,點(diǎn)擊Clone or download按鈕,如下圖所示:
3.2 上傳文件或文件夾至服務(wù)端
在本地倉(cāng)庫(kù)新增或修改文件后,需要將文件上傳至遠(yuǎn)程倉(cāng)庫(kù)。對(duì)于修改后的文件,可以使用git diff [file]命令查看被修改的內(nèi)容。具體上傳步驟如下:
第一步,克隆遠(yuǎn)程倉(cāng)庫(kù)至本地,參考3.1所述。或者在本地新建一個(gè)倉(cāng)庫(kù),然后提交到服務(wù)端,具體使用Git命令新建倉(cāng)庫(kù)的步驟將在后文詳細(xì)介紹。我通常會(huì)在GitHub網(wǎng)站上新建倉(cāng)庫(kù),這樣較為方便。
git clone "[your repository path]"
第二步,將文件拷貝到該倉(cāng)庫(kù)目錄后,執(zhí)行以下命令。同時(shí),可以使用git status命令查看當(dāng)前目錄下文件的狀態(tài),新拷貝的文件會(huì)顯示為未跟蹤(untracked)。
//將需要提交的文件或目錄添加到Git的緩沖區(qū) git add [your file or directory] #示例:git add test1.txt test2.txt dir1
第三步,提交文件并添加備注,備注是必需的,否則無(wú)法提交。
git commit -m "[備注信息]" //示例 git commit -m "提交新增的文件或文件夾"
第四步,推送文件。
//默認(rèn)推送到主分支 git push //顯示指明推送到哪個(gè)分支,這里推送到主分支master git push origin master
3.3 刪除文件或文件夾
有了上傳文件的完整流程,刪除文件就相對(duì)簡(jiǎn)單了,直接上命令。
//刪除文件 git rm [files] //刪除目錄 git rm -r [dirs] //提交 git commit -m "[刪除某文件]" //推送 git push
3.4 批量提交修改、刪除和新增的文件或文件夾
在進(jìn)行修改、刪除和新增操作后,需要提交多個(gè)文件或文件夾,此時(shí)不必逐個(gè)使用git add,這樣效率太低。幸運(yùn)的是,git add命令提供了以下選項(xiàng):
git add -A 表示添加所有更新的內(nèi)容,包括編輯過(guò)的,刪除的和新增的文件,-A表示all; git add . 表示添加新文件和編輯過(guò)的文件,不包括刪除的文件; git add -u 表示添加編輯或者刪除的文件,不包括新添加的文件,-u表示update。
使用git add -h可以查看git add各命令選項(xiàng)的具體含義。
3.5 git push出現(xiàn)Error: failed to push some refs to ‘倉(cāng)庫(kù)地址’的錯(cuò)誤
出現(xiàn)此錯(cuò)誤的原因是遠(yuǎn)程倉(cāng)庫(kù)中代碼版本與本地不一致,導(dǎo)致沖突。解決方法是先執(zhí)行g(shù)it pull,再執(zhí)行g(shù)it push。
git pull的作用是從遠(yuǎn)程倉(cāng)庫(kù)拉取最新版本并merge到本地。
參考文獻(xiàn):
[1]10分鐘學(xué)會(huì)Git教程 – 安裝Git、建倉(cāng)庫(kù)、添加和推送文件至庫(kù)
[2]Git常用命令大全
[3]git add詳解
[4]Git push 報(bào)錯(cuò) “error: failed to push some refs to ” 解決