Git基礎(chǔ)使用

前言


Git是版本控制系統(tǒng)猪贪,由Linux開源社區(qū)開發(fā)。與其他的版本系統(tǒng)相比盆偿,Git更加快速柒爸,便捷。主要是Git存儲(chǔ)的是快照事扭,而非差異性比較捎稚。并且絕大數(shù)操作都是訪問本地文件和資源,沒有網(wǎng)絡(luò)時(shí)也可以直接提交求橄,等到有網(wǎng)時(shí)再推送到遠(yuǎn)程倉(cāng)庫(kù)今野。對(duì)于文件的歷史也是直接拉取本地,瞬間完成罐农。

背景


解決一下場(chǎng)景遇到的問題
業(yè)務(wù):個(gè)人信息的需求条霜。
Coder:碼碼碼碼碼碼。涵亏。宰睡。(進(jìn)行中)
安全部門:怎么檔案的信息改下id蒲凶,能看到別人的檔案,趕緊修復(fù)拆内。
Coder:個(gè)人信息還沒做好旋圆,檔案修復(fù)和個(gè)人信息文件又存在交叉,不能提交麸恍,該怎么辦灵巧?

文件狀態(tài)變化周期


1.png

文件的狀態(tài)只有兩種:未跟蹤(untracked)和已跟蹤(unmodified、modified抹沪、staged)

1. 工作目錄下創(chuàng)建new.php文件
2.jpg

執(zhí)行 git status刻肄,可以發(fā)現(xiàn)new.php還沒有被git跟蹤

2. 跟蹤new.php文件
3.jpg

執(zhí)行g(shù)it add . 后,文件被放入暫存區(qū)(staged)

3. 修改new.php的內(nèi)容
4.jpg

git status 后融欧,出現(xiàn) Changes not staged for commit肄方,說明跟蹤的文件已被修改,還未放入在暫存區(qū)

4. 暫存修改的new.php
5.jpg

git add 是個(gè)多功能的命令蹬癌,既可以將未跟蹤的文件放入暫存區(qū)权她,也可以將修改的文件放入暫存區(qū),當(dāng)然它還有其他的一些功能逝薪。從上面的圖我們可以看到隅要,修改的文件被放入到暫存區(qū)了。

5. 提交董济,生成快照
6.jpg

git commit -m "add new" 后步清,已生成此次的快照,校驗(yàn)和為 dd90005
note : git commit -a -m ''add new"虏肾, 可以跳過git add

6. 刪除提交
7.jpg

git rm后廓啊,重新提交,文件在工作目錄和暫存區(qū)中都被刪除封豪。

分支

git的原理由5個(gè)對(duì)象實(shí)現(xiàn)谴轮,想知道具體的可以搜下資料看看,這里主要講如何解決背景出現(xiàn)的問題吹埠。
git log --oneline --decorate --graph --all //先執(zhí)行此命令查看工作目錄所處的分支


18.jpg

根據(jù)上圖可以看到工作目錄處于master分支第步,HEAD指向master分支,流程圖:


8.png
1.個(gè)人信息需求

git branch issue //此時(shí)HEAD還是指向master
創(chuàng)建issue分支缘琅,這點(diǎn)很重要粘都,當(dāng)有新需求過來的時(shí)候,一定要?jiǎng)?chuàng)建自己的分支刷袍。保持主分支為原樣翩隧。
git checkout issue //切換到issue分支,HEAD指向issue


9.png

流程圖:


10.png
2. 碼碼碼碼碼碼

在issue分支下呻纹,工作堆生,并提交到暫存區(qū)


11.jpg

可以看到生成了校驗(yàn)碼為c7abbef的快照滚局,流程圖:


12.png
3. 檔案信息修復(fù)

git checkout master //切換master主分支,HEAD指向master
git branch issue2 //創(chuàng)建issue2分支顽频,HEAD指向master
git checkout issue2 //HEAD指向issue2
修復(fù)bug,同提交太闺,產(chǎn)生3a59570快照糯景。
此時(shí)流程圖:


13.png

git checkout master //切換master分支
git merge issue2 //issue2分支的內(nèi)容合并到master分支
流程圖:


14.png

此時(shí)的合并只是將master指針前移。
git branch -d issue2 //刪除issue2分支

4. 繼續(xù)個(gè)人信息

git checkout issue //切換issue分支
碼碼碼碼碼省骂。蟀淮。。钞澳。
功能實(shí)現(xiàn)繼續(xù)提交
流程圖:


15.png

git checkout master //切換到master主分支
git merge issue //合并issue分支到master主分支

16.png

此時(shí)的合并就不是簡(jiǎn)單的將master指針前移怠惶,因?yàn)檫@兩個(gè)分支的共同分支是9ffb7ee,而不是3a59570轧粟,此次合并做了兩次操作策治,一是將94517a9、9ffb7ee兰吟、3a59570的結(jié)果做了一次新的快照通惫,二是對(duì)結(jié)果做了一次新的提交10af497。

注:此時(shí)如果有文件沖突混蔼,出現(xiàn) CONFLICT (content): Merge conflict 履腋,可以到?jīng)_突的文件中,修改沖突的內(nèi)容惭嚣,再次 git commit -a -m "fix confilct"

關(guān)于git的使用就講到這了遵湖,上面講的這些也只是git的基本使用。
當(dāng)我們?cè)偃ド钊氲牧私獾脑捦硗蹋蜁?huì)發(fā)現(xiàn)用git也可以實(shí)現(xiàn)運(yùn)維系統(tǒng)發(fā)布那一套流程延旧,每一個(gè)開發(fā)者將自己私有庫(kù)的更新發(fā)布到自己的公共庫(kù)上,再由管理者去拉取開發(fā)者的公共庫(kù)更新槽地,管理者發(fā)現(xiàn)沒有問題垄潮,再推送到主倉(cāng)庫(kù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闷盔,一起剝皮案震驚了整個(gè)濱河市弯洗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逢勾,老刑警劉巖牡整,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異溺拱,居然都是意外死亡逃贝,警方通過查閱死者的電腦和手機(jī)谣辞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人氢哮,你說我怎么就攤上這事媚狰。” “怎么了躯嫉?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)杨拐。 經(jīng)常有香客問我祈餐,道長(zhǎng),這世上最難降的妖魔是什么哄陶? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任帆阳,我火速辦了婚禮,結(jié)果婚禮上屋吨,老公的妹妹穿的比我還像新娘蜒谤。我一直安慰自己,他們只是感情好至扰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布芭逝。 她就那樣靜靜地躺著,像睡著了一般渊胸。 火紅的嫁衣襯著肌膚如雪旬盯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天翎猛,我揣著相機(jī)與錄音胖翰,去河邊找鬼。 笑死切厘,一個(gè)胖子當(dāng)著我的面吹牛萨咳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疫稿,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼培他,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了遗座?” 一聲冷哼從身側(cè)響起舀凛,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎途蒋,沒想到半個(gè)月后猛遍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年懊烤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梯醒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腌紧,死狀恐怖茸习,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情壁肋,我是刑警寧澤号胚,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站墩划,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嗡综。R本人自食惡果不足惜乙帮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望极景。 院中可真熱鬧察净,春花似錦、人聲如沸盼樟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晨缴。三九已至译秦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間击碗,已是汗流浹背筑悴。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稍途,地道東北人阁吝。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像械拍,于是被迫代替她去往敵國(guó)和親突勇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354