講點(diǎn)簡(jiǎn)單實(shí)用的知識(shí)點(diǎn)--git

git這個(gè)工具呢,是用于版本管理的,一個(gè)人開(kāi)發(fā)的時(shí)候可能沒(méi)有什么影響,都是你一個(gè)人在管理和維護(hù).但是當(dāng)你進(jìn)入一個(gè)團(tuán)隊(duì)后那么就變得不同了,共同開(kāi)發(fā)一個(gè)項(xiàng)目那么你就要與別人協(xié)作,完成開(kāi)發(fā)的相關(guān)工作.所以問(wèn)題來(lái)了.你寫(xiě)的代碼和別人寫(xiě)的代碼怎么合到一起呢,對(duì),我們有ctrl+c,ctrl+v,這個(gè)操作我還是會(huì)的.那么如果修改的是同一個(gè)文件呢,那么是不是要選取更合理的,替換掉原來(lái)的代碼.想想都是一個(gè)非常繁瑣的工作.有這個(gè)需求,那么就市場(chǎng),有市場(chǎng)就會(huì)有人去開(kāi)發(fā)這個(gè)工具,所以相關(guān)的管理工具就出來(lái)了.其中用的較多的有svn,git.現(xiàn)在來(lái)說(shuō)更多的用的還是git.至于為什么這里就不多說(shuō)了,這里只講用法,原理有機(jī)會(huì)再說(shuō).

這里針對(duì)的是剛出來(lái)工作的大學(xué)生,因?yàn)樵趯W(xué)校里的開(kāi)發(fā),更多的還是個(gè)人,沒(méi)有用到git這類工具(當(dāng)然這里說(shuō)的是大多數(shù)的).所以剛?cè)肼毠?要學(xué)的就是git這個(gè)版本管理工具.這里算是提前給大家補(bǔ)充這塊的知識(shí),學(xué)會(huì)了進(jìn)入公司,要少花一點(diǎn)時(shí)間,同時(shí)也是讓自的開(kāi)發(fā)更加的規(guī)范.

只講常用的命令,不常用的不講.
安裝這里也不講了,用windows的多,所以下一個(gè).exe文件,傻瓜式的下一步,解決問(wèn)題.
講一下安裝完成后的操作.

  1. 克隆代碼的命令,這個(gè)是一定得會(huì)的,因?yàn)榈谝淮文闳ダ〈a就是用的這個(gè)命令.別再用那種下壓縮包來(lái)解壓這種操作了,看著真的太low了.直接git clone 加地址就可以了.
    地址有兩種形式.
//  http的
https://github.com/MengTo/Spring.git
git clone https://github.com/MengTo/Spring.git
// ssh的
git@github.com:MengTo/Spring.git
git clone git@github.com:MengTo/Spring.git

去拉這種開(kāi)源項(xiàng)目沒(méi)有什么問(wèn)題,但是如果是公司私有的,那么你一定要在項(xiàng)目組中才行.

  1. 然后就開(kāi)取開(kāi)發(fā),編寫(xiě)代碼,之后怎么提交問(wèn)題.
    在提交之前要做一個(gè)事情,那就是完善一下個(gè)人信息,要不交上去了,誰(shuí)知道是你提交的.要用到兩個(gè)命令.其實(shí)也就是對(duì)配置文件的更改,所以可以直接更改配置文件,當(dāng)然不去動(dòng)配置文件,那么直接用命令修改要更改的配置也行.
git config --global(這個(gè)是圖個(gè)方便,如果這電腦多個(gè)人在使用,同時(shí)開(kāi)發(fā)不同的項(xiàng)目,那么就不要用這個(gè)參數(shù)了.這是全局變量) user.name "手握日月摘星晨,世間無(wú)我這般人",這名字真好.
git config --global user.mail "nb@gamil.com" 

這樣就可以了.

克隆下來(lái)的項(xiàng)目,一般來(lái)說(shuō)項(xiàng)目的倉(cāng)庫(kù)地址是配置好的,那么就可以不用配置了.不過(guò)也有直接開(kāi)發(fā)的項(xiàng)目,然后直接往倉(cāng)庫(kù)推的,那么就有一個(gè)添加倉(cāng)庫(kù)地址的命令.


image.png

image.png
// 先查看一下有沒(méi)有地址
git remote -v
看這是添加好的,如果沒(méi)有怎么添加呢.
git remote add 名稱 地址
eg: git remote add dev git@github.com:MengTo/Spring.git
//加錯(cuò)了怎么辦,那就刪除嘛
git remote remove dev(這里直接給名稱就可以了)

//然后要做的是新建一個(gè)分支,因?yàn)椴粫?huì)直接在develop分支上面直接做開(kāi)發(fā)的,如果你遇到這樣的公司那么直接跑路,因?yàn)樘灰?guī)范了.以下就涉及到分支的概念了.

一般有以下的兩種

  1. 一種是直接fork到自已帳戶下,然后開(kāi)發(fā),再merge倉(cāng)庫(kù)的代碼,然后推上去,提mergerequest.管理員審核,如果可以,就會(huì)合代碼.
  2. 另一種就是直接通過(guò)分支來(lái)解決.通過(guò)拉新的分支來(lái)開(kāi)發(fā),然后merge開(kāi)發(fā)分支,之后提交代碼提合并請(qǐng)求.

但是共同點(diǎn)都是要先merge,再提交.

這里要先講一下分支的操作:

//查看分支列表.(-l (local)本地 -a (all)全部 -r(remote) 遠(yuǎn)端倉(cāng)庫(kù) )
git branch -l
//分支名如果存在切換到該分支,不存在則新建.(新建的規(guī)則是從當(dāng)前所在分支復(fù)制一分相同的代碼.)
git brach 分支名 
//切換分支名一般用的這個(gè)命令
git checkout 分支名

//以上都做好了,那么就可以在寫(xiě)好代碼提交了.


image.png

提交代碼的步驟:
i .先查看文件的狀態(tài):修改過(guò)的,是紅色的,同時(shí)沒(méi)有添加到索引區(qū).

git status

ii. 然后將要提交的文件加入到索引區(qū)


image.png

image.png
git add 文件名 
// 如果全部添加的話
git add .

這里又出現(xiàn)問(wèn)題了,那么我們?nèi)绻渝e(cuò)文件了怎么辦,當(dāng)然是有撤銷操作的.


image.png

image.png
//這個(gè)是刪除命令,有點(diǎn)暴力
git rm --cached 文件名
//溫柔一點(diǎn)的,不加文件名就是所有了.
git reset 文件名
image.png

image.png

iii. 如果前面的沒(méi)有問(wèn)題那就是可以提交了,commit,這樣會(huì)先暫到本地的倉(cāng)庫(kù),此時(shí)還沒(méi)有到遠(yuǎn)端倉(cāng)庫(kù).具體的命令是:

// 提交記錄:
git commit -m "提交信息"
//查看提交記錄
git log

注意了:如果一個(gè)分支你有很多次提交,比較加了一個(gè)"," 添加一行代碼,都提交,那么提交記錄是不是就很多了.


image.png

估計(jì)你領(lǐng)導(dǎo)看見(jiàn)不會(huì)太開(kāi)心,哪有這樣寫(xiě)代碼的.當(dāng)然有時(shí)候要處理別的分支的代碼而你又在開(kāi)發(fā),就暫時(shí)的保存一下,但結(jié)果就是不好看,領(lǐng)導(dǎo)也不會(huì)看過(guò)程不是.所以就有一個(gè)合并提交記錄的操作.


image.png
image.png
image.png
image.png

image.png
image.png
image.png
image.png
image.png

至此我們就完成了記錄的合并修改.涉及的命令:

//修改記錄:~~表示之前的所有,~2表示前兩次
git rebase -i HEAD~~ 

已經(jīng)修改了,分為兩種情況,
a. 這個(gè)分支是新建,遠(yuǎn)端倉(cāng)庫(kù)沒(méi)有,那么直接fetch一下,更新一下本地分支的代碼.
b. 如果這個(gè)分支遠(yuǎn)端倉(cāng)庫(kù)有,那么要先pull,拉取和本地的代碼比較,有沖突的地方要解決,然后再是merge,develop分支的代碼.否則代碼push到遠(yuǎn)端分支會(huì)出錯(cuò),要二次解決沖突.

git fetch

git pull

git merge origin/develop(倉(cāng)庫(kù)名/分支名)

//最后推到遠(yuǎn)端倉(cāng)庫(kù).->提merge request
git push

前面提到一個(gè)問(wèn)題.那就是如果我們臨時(shí)要切換分支,而我們的代碼以沒(méi)有開(kāi)發(fā)完,不想commit怎么辦.git提供了一個(gè)暫存的操作.


image.png

image.png

image.png

// 我新添加的沒(méi)有了,將其放到了緩存中.


image.png

//完成其他分支修改后,取出緩存中的內(nèi)容
image.png

image.png
// 涉及的命令有:
//查看緩存列表
git stash list
//存儲(chǔ)操作
git stash save "存儲(chǔ)內(nèi)容信息"
//取出緩存:pop 取出并刪除. apply是取出不刪除.
git stash pop stash@{0}

我們提交時(shí)都會(huì)遇到一個(gè)問(wèn)題,那就是commit的內(nèi)容沒(méi)有完整,想修改一下,那要怎么做呢.


image.png

image.png

image.png
git commit --amend
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末唠椭,一起剝皮案震驚了整個(gè)濱河市焦人,隨后出現(xiàn)的幾起案子盔憨,更是在濱河造成了極大的恐慌,老刑警劉巖拢肆,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勇蝙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)噩斟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)孤个,“玉大人剃允,你說(shuō)我怎么就攤上這事∨鹕恚” “怎么了硅急?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)佳遂。 經(jīng)常有香客問(wèn)我营袜,道長(zhǎng),這世上最難降的妖魔是什么丑罪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任荚板,我火速辦了婚禮,結(jié)果婚禮上吩屹,老公的妹妹穿的比我還像新娘跪另。我一直安慰自己,他們只是感情好煤搜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布免绿。 她就那樣靜靜地躺著,像睡著了一般擦盾。 火紅的嫁衣襯著肌膚如雪嘲驾。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天迹卢,我揣著相機(jī)與錄音辽故,去河邊找鬼。 笑死腐碱,一個(gè)胖子當(dāng)著我的面吹牛誊垢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼喂走,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼殃饿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起缴啡,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤壁晒,失蹤者是張志新(化名)和其女友劉穎瓷们,沒(méi)想到半個(gè)月后业栅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谬晕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年碘裕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攒钳。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帮孔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出不撑,到底是詐尸還是另有隱情文兢,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布焕檬,位于F島的核電站姆坚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏实愚。R本人自食惡果不足惜兼呵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腊敲。 院中可真熱鬧击喂,春花似錦、人聲如沸碰辅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)没宾。三九已至凌彬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榕吼,已是汗流浹背饿序。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羹蚣,地道東北人原探。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親咽弦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子徒蟆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348