版本管理的倚天劍 --- git

前言:

要想成為武林高手准谚,除了要身懷絕技,還需要神兵利器相配去扣。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 隱藏文件夾。


image.png

4旱眯、查看狀態(tài):
比如現(xiàn)在修改了testproject晨川,新增了一個(gè)index.txt文件,那么執(zhí)行
git status
就可以看到這個(gè)文件删豺。

image.png

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ō)明蓬蝶。

image.png

再查看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)目:

image.png

然后填寫(xiě)相關(guān)信息點(diǎn)擊創(chuàng)建即可摄狱。如果項(xiàng)目不是空的點(diǎn)擊管理,清空即可歧蒋。

3宁炫、把本地項(xiàng)目推到碼云:
復(fù)制碼云上項(xiàng)目的地址:

image.png

先用https地址偿曙,ssh等下講其配置。

然后在git bash 界面進(jìn)入到需要上傳的項(xiàng)目根目錄羔巢,以剛才的testproject為例望忆,執(zhí)行推送命令:

git push https://gitee.com/rwxing/testproject.git master

但是報(bào)如下錯(cuò)誤:


image.png

執(zhí)行如下命令:
git config --system --unset credential.helper

再次執(zhí)行推送命令,就會(huì)要你輸入碼云的用戶(hù)名以及密碼竿秆,輸入后即可推送成功启摄。

4、團(tuán)隊(duì)合作:
所謂團(tuán)隊(duì)合作就是讓別人也有權(quán)限去讀寫(xiě)你碼云上的那個(gè)項(xiàng)目幽钢。

image.png

在這個(gè)頁(yè)面就可以添加團(tuán)隊(duì)成員歉备。比如添加一個(gè)開(kāi)發(fā)者:
image.png

在這里輸入你要添加的成員就可以了。
然后你添加的那個(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,如下圖:

image.png

注意:
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梳侨。

image.png

6蛉威、查看日志:
git log

git log --pretty=oneline

image.png

7、版本切換:
git reset --hard HEAD^^^

image.png

三個(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)扒寄。


image.png

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 分支名

image.png

這時(shí)候你就可以在branch1分支上修改程序鬓长,而不會(huì)影響master。比如新增了一個(gè)A功能尝江,要新增branch.txt涉波。
image.png

這時(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)了窗声。


image.png

這時(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ē)即可。

image.png

找到圖中公鑰文件:


image.png

打開(kāi)文件担巩,把公鑰復(fù)制下來(lái)方援,然后在下圖處粘貼即可。


image.png

這樣再push時(shí)就不用輸入用戶(hù)名密碼了涛癌。

總結(jié):

git學(xué)習(xí)內(nèi)容不多犯戏,就那幾個(gè)命令,一般上傳就是先init拳话,再add先匪,然后commit,最后push就可以了弃衍;下載就是pullclone或者直接下載zip文件呀非;把下載好的項(xiàng)目導(dǎo)入eclipse一定要注意導(dǎo)入方式,在上面注意事項(xiàng)中已經(jīng)說(shuō)過(guò)镜盯。

以上內(nèi)容屬于個(gè)人筆記整理岸裙,如有錯(cuò)誤,歡迎批評(píng)指正速缆!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末降允,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子艺糜,更是在濱河造成了極大的恐慌剧董,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倦踢,死亡現(xiàn)場(chǎng)離奇詭異送滞,居然都是意外死亡侠草,警方通過(guò)查閱死者的電腦和手機(jī)辱挥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)边涕,“玉大人晤碘,你說(shuō)我怎么就攤上這事褂微。” “怎么了园爷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵宠蚂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我童社,道長(zhǎng)求厕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任扰楼,我火速辦了婚禮呀癣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘弦赖。我一直安慰自己项栏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布蹬竖。 她就那樣靜靜地躺著沼沈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪币厕。 梳的紋絲不亂的頭發(fā)上列另,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音旦装,去河邊找鬼访递。 笑死,一個(gè)胖子當(dāng)著我的面吹牛同辣,可吹牛的內(nèi)容都是我干的拷姿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼旱函,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼响巢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起棒妨,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤踪古,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后券腔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伏穆,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年纷纫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枕扫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辱魁,死狀恐怖烟瞧,靈堂內(nèi)的尸體忽然破棺而出诗鸭,到底是詐尸還是另有隱情,我是刑警寧澤参滴,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布强岸,位于F島的核電站,受9級(jí)特大地震影響砾赔,放射性物質(zhì)發(fā)生泄漏蝌箍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一暴心、第九天 我趴在偏房一處隱蔽的房頂上張望十绑。 院中可真熱鬧,春花似錦酷勺、人聲如沸本橙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)甚亭。三九已至,卻和暖如春击胜,著一層夾襖步出監(jiān)牢的瞬間亏狰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工偶摔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暇唾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓辰斋,卻偏偏與公主長(zhǎng)得像策州,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宫仗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git够挂,從https:/...
    落魂灬閱讀 12,667評(píng)論 4 54
  • Git常用語(yǔ)法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/。)是一個(gè)開(kāi)源的分布式版本控制系統(tǒng)藕夫,...
    君惜丶閱讀 3,534評(píng)論 0 13
  • 年逾七旬的母親突然返老還童了孽糖,真的就像孩子一般,兒童所有的行為又都在她身上重演了毅贮,吃飯需要哄著办悟,睡覺(jué)需要哄著...
    散步的野鶴閱讀 531評(píng)論 0 1
  • 雨是那么大。雷聲隆隆地在山后滾滩褥。 窗外響起蛙聲病蛉。一急一緩地呼應(yīng)。像是互答著別來(lái)無(wú)養(yǎng)。 聽(tīng)雨聽(tīng)蛙聽(tīng)雷铡恕,看見(jiàn)白日里的自...
    銘玥詠全閱讀 117評(píng)論 0 2
  • 我們生活在這個(gè)世界上,總會(huì)有這樣或者那樣的煩惱丢间,有時(shí)候我們會(huì)害怕探熔,有時(shí)候也會(huì)煩惱,可是烘挫,煩惱的過(guò)去總是會(huì)過(guò)去...
    2006白正擎閱讀 211評(píng)論 2 1