之前一直用的svn,后來換了之后才發(fā)現(xiàn)git的強大功能,是svn不能比的。缺點就是可能上手比較難一點,剛開始自己研究了兩天才摸索出來一些基本使用方法。
最近做項目需要建庫等等,都用到了git,隨著越來越多的使用,也越來有越多的認識。
一開始都是別人建好遠程庫,克隆下來就行了。
下面內(nèi)容只是帶你git入門,一些基礎(chǔ)的東西,是開發(fā)過程中一些基本的操作,單單這些你會用了之后就能發(fā)現(xiàn)他的好處,以及使用命令行Enter敲擊時的快感,還能提高逼格。
當(dāng)然我們還是為了方便項目管理。
安裝
git工具下載地址,可以選擇適合自己的操作系統(tǒng):https://git-scm.com/downloads
安裝完git,要配置環(huán)境變量,拷貝git安裝目錄下的bin文件目錄,如D:\Program Files\Git\bin
,將目錄拷貝添加到PATH變量后。注意:與前面的值要用“;”號隔開
具體步驟:
右鍵計算機-屬性-高級系統(tǒng)設(shè)置-環(huán)境變量-PATH將目錄添加到后面,%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;D:\Program Files\Git\bin
安裝完成后使用 git --version
命令查看一下git版本,測試是否安裝、配置成功。
克隆遠程庫
使用cmd(安裝過git直接可以右鍵文件夾使用git bash here
)定位到要放置倉庫的目錄
git clone [遠程倉庫地址]
遠程倉庫就是托管到第三方平臺上面的庫。
常用的有g(shù)ithub,這個私有是收費的,要用免費的只能是公共的。
目前國內(nèi)用的比較多的coding ,和開源中國的碼云。原理都一樣,只不過看起來會有點視覺上的差別,個人覺得coding比較簡潔,適合學(xué)習(xí),剛?cè)腴Tgit的新手練習(xí)。而且視圖更直觀。
碼云是我現(xiàn)在用的,功能要比coding多,包括直接下載上傳文件以及打包好的apk文件。
在這里要說一下克隆的時候有的坑,要克隆遠程倉庫必須是你在這個項目中,就是項目所有者(管理員)把你添加進這個項目成員。輸入克隆的指令后,如果是第一次使用會提示你輸入用戶名,和密碼。
前面步驟如果無誤,之后會顯示克隆的進度,直到完成克隆。
創(chuàng)建代碼庫
包括遠程庫(第三方平臺)、本地庫(存放代碼信息)。
- 創(chuàng)建遠程庫:根據(jù)第三方平臺提示進行創(chuàng)建,一般都有步驟說明,按照說明來就好。
創(chuàng)建完成后建議初始化一下倉庫,
可以在遠程上根據(jù)提示,創(chuàng)建使用README.md文件初始化項目。
也可以使用git命令:
git init
echo "# HelloWorld" >> README.md
git add README.md
git commit -m "first commit"
建議使用前者,直接在第三方上創(chuàng)建。
- 創(chuàng)建本地倉庫:有兩種方法
1、使用git命令
git init
2、android Studio中(這里使用AS為例,其它的IDEA、webStorm操作都一樣)
點擊VCS-import into version control-create git repository
會彈出選擇倉庫的路徑,直接選當(dāng)前項目就行,然后確定。
創(chuàng)建完之后,找到項目路徑會發(fā)現(xiàn)文件夾下多了個.git文件,這個就是存放代碼的倉庫。
而且項目中的文件的名稱都會變?yōu)榧t色,說明已經(jīng)有倉庫了,但是這些紅色的項目文件,并沒有加到本地倉庫(.git倉庫文件中)。
(關(guān)于顏色后面我會具體說,各種顏色代表的狀態(tài)) - 關(guān)聯(lián)本地和遠程庫
關(guān)聯(lián)就是把本地倉庫的.git倉庫文件,和遠程(coding)創(chuàng)建的倉庫聯(lián)系起來,每次提交代碼,將本地.git中代碼,提交到遠程庫。
使用命令:
git remote add origin [遠程倉庫地址]
如果是首次使用,會提示輸入用戶名+密碼,用戶名一般是郵箱,輸錯是關(guān)聯(lián)不成功的。
關(guān)聯(lián)成功則無提示,接著輸入命令
git push origin master
如果失敗,很大可能是遠程倉庫已存在文件。可以執(zhí)行
git push -f origin master
強制提交。
提交過程是能看到進度的。
提交完成后可以去平臺上查看有沒有代碼就知道是否成功。
注意:所有命令行操作必須使用cmd或者git bash定位到項目目錄下
倉庫基本使用
提交過程:
右鍵項目-git-add,彈框,選擇是
;
這時候只是把代碼添加到本地倉庫,
再右鍵項目選擇commit directory 在彈框的commit message中輸入提交信息,選擇commit and push
然后會顯示進度。
在多人協(xié)作開發(fā)一個項目的時候,提交之前一定要先pull一下(VCS - pull
),如果有沖突,選擇合并或者是選擇遠程的,還是本地的,三者選一。
處理好這些再進行提交操作。
分支管理
分支作為git一個重要的存在,可以進行版本回退,或者協(xié)作開發(fā)都是一個很便利的存在。
在創(chuàng)建倉庫的時候,默認會有個master分支,如果是首次開發(fā),則不需要創(chuàng)建分支。
但是在版本迭代的時候,特別是大版本迭代,就用到了分支,分支是相互獨立存在的倉庫。
互不影響,在克隆的時候切換一下分支,就會把不同分支下的倉庫內(nèi)容拷貝過來,就像1.0、2.0版本,是分開的,1.0在master分支,2.0版本在maste2分支,可以隨時修改歷史版本。
常用命令
創(chuàng)建并切換到新建分支:
git checkout -b master2
切換分支:
git checkout master2
刪除分支:
git branch -d fmaster2
將分支推送到遠程倉庫:
git push origin <branch>
關(guān)于顏色
白色(正常色):未改動或者沒有倉庫時的顏色。上
紅色:未添加倉庫的,在創(chuàng)建倉庫時會出現(xiàn)。
綠色:已添加到本地倉庫,沒有進行commit push提交遠程的。
藍色:修改已經(jīng)提交到本地倉庫的代碼。
常見問題
有一種情況是提交/強制提交的時候出現(xiàn)
error: src refspec master does not match any. error: failed to push some refs to 'https://github.com/wapchief/chat-room-JFrame.git'
說明是本地代碼庫為空
解決辦法:
1、在項目中,如android studio,打開項目,右鍵->Git->+Add,然后重新右鍵->Git->commit Directory->commit and push->commit。執(zhí)行之后會發(fā)現(xiàn)代碼文件顏色都變成正常的白色,之后回到命令行執(zhí)行提交操作
2、在本地倉庫創(chuàng)建一個文件,推送到倉庫
touch README git add README git commit -m 'first commit' git push origin master
如果按照上面的步驟來的話是不會出現(xiàn)這種情況的,這種情況出現(xiàn)于已有現(xiàn)成的項目,并且本地項目的代碼未提交到本地倉庫。這時候提交到遠程,就會判定你本地倉庫為空。
補充一個在提交過程中出現(xiàn)無法解決問題的辦法
如果在使用命令行操作時出現(xiàn)無法解決的錯誤,直接進入到項目文件,刪除.git
文件,然后右鍵該項目目錄,或者使用cmd定位到該目錄,重新執(zhí)行
git init #初始化本地倉庫
git remote add origin [遠程庫地址] #關(guān)聯(lián)遠程庫
git add . #提交本地代碼到本地倉庫的暫存區(qū)
git commit -m '[提交說明]' #提交本地代碼到本地倉庫,并附上提交說明
git push -f origin master #強制推送到遠程庫
關(guān)于這些只是對于剛?cè)腴T的學(xué)習(xí)者有些幫助,在我學(xué)習(xí)的時候也遇到了好多坑,至今有些問題還能遇到,但是不至于手忙腳亂,起碼知道問題出在了哪個環(huán)節(jié)。
Git是一個很強大的版本控制工具,有很多功能,需要嘗試去深入研究,希望學(xué)習(xí)者能夠感受到他帶來的便捷。