前言:
要想成為武林高手准谚,除了要身懷絕技,還需要神兵利器相配去扣。git絕對(duì)稱(chēng)得上是版本管理工具中的倚天劍柱衔。正所謂好馬配好鞍,相信用上git的你一定能稱(chēng)霸碼林愉棱,獨(dú)步天下唆铐!
歡迎大家關(guān)注我的公眾號(hào) javawebkf,目前正在慢慢地將簡(jiǎn)書(shū)文章搬到公眾號(hào)羽氮,以后簡(jiǎn)書(shū)和公眾號(hào)文章將同步更新,且簡(jiǎn)書(shū)上的付費(fèi)文章在公眾號(hào)上將免費(fèi)惫恼。
一档押、git簡(jiǎn)介:
git是一個(gè)分布式版本控制系統(tǒng),可以有效祈纯、高速的處理從很小到非常大的項(xiàng)目版本管理令宿。每個(gè)人都有一個(gè)完整的版本庫(kù),對(duì)任何文件的修改提交操作都是針對(duì)本地版本庫(kù)腕窥,所以無(wú)需聯(lián)網(wǎng)粒没,速度很快。但是多人協(xié)作如何進(jìn)行呢簇爆?很簡(jiǎn)單癞松,你只需要把你的修改推送給對(duì)方就可以了。但是這樣互相推來(lái)推去很麻煩入蛆,所以我們需要一個(gè)中央服務(wù)器來(lái)中轉(zhuǎn)一下响蓉,本質(zhì)上它和你的本地版本庫(kù)沒(méi)有任何區(qū)別。GitHub和碼云都是這樣的中央服務(wù)器哨毁,碼云就相當(dāng)于國(guó)產(chǎn)的GitHub枫甲。
二、git的安裝:
1、下載:進(jìn)入git官網(wǎng)下載地址想幻,選擇download粱栖,依據(jù)自己的操作系統(tǒng)選擇下載。
2脏毯、安裝:下載好了安裝文件后闹究,雙擊,然后選擇安裝路徑抄沮,一路next即可跋核。
3、配置:在cmd命令行窗口或git bash界面輸入以下命令:
git config --global user.name "用戶(hù)名"
git config --global user.email "郵箱"
注意:用這兩個(gè)命令設(shè)置用戶(hù)名和郵箱叛买,不要用中文砂代!
輸入:
git config --list
就可以查看到自己剛才輸入的用戶(hù)名和郵箱。
三率挣、git的使用:
1刻伊、git原理:
git主要就是3棵樹(shù):
一個(gè)是工作區(qū) ------>就是你的project;
一個(gè)是暫存區(qū) ------>暫時(shí)存儲(chǔ)本地的修改;
一個(gè)是git倉(cāng)庫(kù) ------>保存修改后的內(nèi)容。
2椒功、git工作流程:
在工作目錄添加修改文件 ---> 將需要進(jìn)行版本管理的文件放入暫存區(qū) ---> 將暫存區(qū)文件提交到git倉(cāng)庫(kù)捶箱。
3、初始化:在你需要進(jìn)行版本管理的項(xiàng)目的根目錄下右鍵动漾,git bash here 丁屎,執(zhí)行如下命令:
git init
在該項(xiàng)目目錄下就會(huì)生成一個(gè) .git 隱藏文件夾。
4旱眯、查看狀態(tài):
比如現(xiàn)在修改了testproject晨川,新增了一個(gè)index.txt文件,那么執(zhí)行
git status
就可以看到這個(gè)文件删豺。
5共虑、將修改的文件加到暫存區(qū):
git add index.txt
如果修改文件有很多,就執(zhí)行
git add .
這就表示把當(dāng)前目錄所有的修改加到暫存區(qū)呀页。
再次執(zhí)行 git status
就可以看到add成功了妈拌。
6、提交到git倉(cāng)庫(kù):
git commit -m "新建了index.txt"
-m
后面的是注釋說(shuō)明蓬蝶。
再查看status尘分,就會(huì)說(shuō)沒(méi)有需要提交的了。
7丸氛、刪除倉(cāng)庫(kù)的文件:
比如我又提交了一個(gè)readme.txt音诫,然后又想刪掉:
git rm readme.txt
git commit -m "刪除了readme.txt"
四、碼云的使用:
上面介紹的增刪改都是基于本地倉(cāng)庫(kù)的雪位,一個(gè)大型項(xiàng)目需要團(tuán)隊(duì)合作的話竭钝,就需要使用GitHub或者碼云了梨撞,它們就是用來(lái)托管代碼的,你可以把你的修改推送到上面香罐,別人從上面就能獲取到你修改后的代碼卧波。接下來(lái)介紹碼云的使用。
1庇茫、注冊(cè)碼云:
進(jìn)入碼云官網(wǎng)按照提示注冊(cè)即可港粱。
2男旗、新建空項(xiàng)目:
然后填寫(xiě)相關(guān)信息點(diǎn)擊創(chuàng)建即可摄狱。如果項(xiàng)目不是空的點(diǎn)擊管理,清空即可歧蒋。
3宁炫、把本地項(xiàng)目推到碼云:
復(fù)制碼云上項(xiàng)目的地址:
先用https地址偿曙,ssh等下講其配置。
然后在git bash 界面進(jìn)入到需要上傳的項(xiàng)目根目錄羔巢,以剛才的testproject為例望忆,執(zhí)行推送命令:
git push https://gitee.com/rwxing/testproject.git master
但是報(bào)如下錯(cuò)誤:
執(zhí)行如下命令:
git config --system --unset credential.helper
再次執(zhí)行推送命令,就會(huì)要你輸入碼云的用戶(hù)名以及密碼竿秆,輸入后即可推送成功启摄。
4、團(tuán)隊(duì)合作:
所謂團(tuán)隊(duì)合作就是讓別人也有權(quán)限去讀寫(xiě)你碼云上的那個(gè)項(xiàng)目幽钢。
在這個(gè)頁(yè)面就可以添加團(tuán)隊(duì)成員歉备。比如添加一個(gè)開(kāi)發(fā)者:
在這里輸入你要添加的成員就可以了。
然后你添加的那個(gè)成員執(zhí)行如下命令:
git clone https://gitee.com/rwxing/testproject.git
就可以把項(xiàng)目下載下來(lái)匪燕,然后進(jìn)行修改蕾羊。
修改了再按照步驟提交,再推到碼云即可谎懦。
5肚豺、把碼云上項(xiàng)目下載到本地:
git pull 項(xiàng)目地址 master
或者
git clone 項(xiàng)目地址 master
或者
直接在碼云上下載zip
,如下圖:
注意:
clone與pull的區(qū)別:是把碼云上的項(xiàng)目整個(gè)拽下來(lái)溃斋,本地從無(wú)到有界拦,pull是指更新分支,本地與碼云上的有差異才能執(zhí)行梗劫。
把下載的項(xiàng)目導(dǎo)入eclipse:導(dǎo)入時(shí)不能import exiting project into workspace享甸,應(yīng)該 import project from folder or archive,否則會(huì)報(bào)錯(cuò)no project found梳侨。
6蛉威、查看日志:
git log
或
git log --pretty=oneline
7、版本切換:
git reset --hard HEAD^^^
三個(gè)^就表示切換到HEAD往前數(shù)第三個(gè)對(duì)應(yīng)的版本走哺。
但是這樣寫(xiě)不好蚯嫌,還要數(shù)往前幾個(gè),所以用下面的命令更好:
git reset --hard 版本號(hào)
版本號(hào)就是查看日志時(shí)查出的那一串,但是頁(yè)不用寫(xiě)全版本號(hào)择示,寫(xiě)開(kāi)頭幾個(gè)束凑,能與其他版本取別開(kāi)來(lái)就可以。
如果你用命令回到了修改前的初始狀態(tài)栅盲,但是后悔了汪诉,發(fā)現(xiàn)這修改是有用的,想回到之前的修改狀態(tài)谈秫,執(zhí)行下面的命令:
git reflog
這個(gè)命令可以查看被你干掉的那些版本的版本號(hào)扒寄。
git reset --hard 5c44d
這樣就可以隨意的切換版本。
8拟烫、分支管理:
分支的理解:
分支其實(shí)很好理解该编,比如有兩條河,它們匯入同一條江构灸,那么這條江就是主線上渴,兩條河就是分支。那么分支有何好處呢喜颁?好處就是分支提交之前不會(huì)影響主線稠氮。比如一個(gè)小孩子在河里尿尿,還有一個(gè)小孩子在另一條河里洗腳半开,假設(shè)他們尿尿和洗腳都要手動(dòng)提交后隔披,攜帶洗腳水和尿的河水才會(huì)匯入到那條江中,那么在他們沒(méi)有提交之前寂拆,江水還是干凈的奢米。雖然比喻不太恰當(dāng),但個(gè)人覺(jué)得還是能理解的纠永。
分支的操作:
查看分支:
git branch
創(chuàng)建分支:
git branch 分支名
切換分支:
git checkout 分支名
這時(shí)候你就可以在branch1分支上修改程序鬓长,而不會(huì)影響master。比如新增了一個(gè)A功能尝江,要新增branch.txt涉波。
這時(shí)候經(jīng)理又說(shuō)先別管這個(gè)功能了,有更重要B功能要完成炭序。那么完成了一半的brand.txt怎么辦啤覆?這時(shí)就可以執(zhí)行如下命令:
保存提交未完成的分支:
git add .
,
git commit -m "brand1 todo"
切回到master:
git checkout master
切回到master后惭聂,你會(huì)發(fā)現(xiàn)剛才新增的brand.txt不見(jiàn)了窗声。
這時(shí)候再建一個(gè)分支branch2,用于完成B功能辜纲。B功能完成后笨觅,就add和commit一下拦耐,然后切回到master,把branch2分支上的內(nèi)容合并到master上见剩。
合并分支:
git merge branch2
9揩魂、遠(yuǎn)程倉(cāng)庫(kù)配置:
查看該項(xiàng)目在碼云上的地址和地址別名:
git remote -v
刪除該項(xiàng)目地址別名:
git remote remove 地址別名
為項(xiàng)目地址添加別名:
git remote add origin 項(xiàng)目地址
注意:是地址別名不是項(xiàng)目名
每次push都要輸入用戶(hù)名密碼,麻煩得很炮温,所以可以配置公鑰火脉。
配置公鑰后https的地址就不能用了,要換成ssh的地址柒啤,執(zhí)行如下步驟:
刪掉https地址:
git remote remove origin
添加ssh地址:
git remote add origin ssh地址
配置公鑰:
生成公鑰與秘鑰:
ssh-keygen -t rsa -C 1475163879@qq.com
這個(gè)郵箱就是剛安裝git時(shí)倦挂,git config user.email時(shí)輸入的郵箱
輸入這個(gè)命令后一路回車(chē)即可。
找到圖中公鑰文件:
打開(kāi)文件担巩,把公鑰復(fù)制下來(lái)方援,然后在下圖處粘貼即可。
這樣再push時(shí)就不用輸入用戶(hù)名密碼了涛癌。
總結(jié):
git學(xué)習(xí)內(nèi)容不多犯戏,就那幾個(gè)命令,一般上傳就是先init
拳话,再add
先匪,然后commit
,最后push
就可以了弃衍;下載就是pull
或clone
或者直接下載zip文件呀非;把下載好的項(xiàng)目導(dǎo)入eclipse一定要注意導(dǎo)入方式,在上面注意事項(xiàng)中已經(jīng)說(shuō)過(guò)镜盯。