關(guān)于Git的實(shí)踐總結(jié)(二)

###git分支###:

分支:?即是平行空間,假設(shè)你在為某個(gè)手機(jī)系統(tǒng)研發(fā)拍照功能膳殷,代碼已經(jīng)完成了80%操骡,但如果將這不完整的代碼直接提交到git倉(cāng)庫(kù)中,又有可能影響到其他人的工作赚窃,此時(shí)我們便可以在該軟件的項(xiàng)目之上創(chuàng)建一個(gè)名叫"拍照功能"的分支册招,這種分支只會(huì)屬于你自己,而其他人看不到勒极,等代碼編寫(xiě)完成后再與原來(lái)的項(xiàng)目主分支合并并下即可是掰,這樣即能保證代碼不丟失,又不影響其他人的工作辱匿。


一般在實(shí)際的項(xiàng)目開(kāi)發(fā)中键痛,我們要盡量保證master分支是非常穩(wěn)定的,僅用于發(fā)布版本匾七,平時(shí)不要隨便直接修改里面的數(shù)據(jù)文件絮短,而工作的時(shí)候則可以新建不同的工作分支,等到工作完成后在合并到master分支上面昨忆,所以團(tuán)隊(duì)合作分支看起來(lái)會(huì)像上圖那樣丁频。

----------------------------------------------------------------------------------------

#新建testing分支#:

[root@git data]# git branch testing

[root@git data]# git branch

* master

? testing? #*號(hào)在哪里就說(shuō)明當(dāng)前在哪個(gè)分支上入

[root@git data]# touch aaa bbb ccc

[root@git data]# git add aaa

[root@git data]# git commit -m "add aaa"

[master c9b595d] add? aaa

1 file change,1 insertion(+),0 deletions(-)

create mode 100644 aaa

[root@git data]# git add bbb

[root@git data]# git commit -m "add ccc"

[master 925e528] add? bbb

1 file change,1 insertion(+),0 deletions(-)

create mode 100644 bbb

[root@git data]# git add ccc

[root@git data]# git commit -m "add ccc"

[master 435e6cf] add? ccc

1 file changed,1 insertion(+),0 deletions(-)

create mode 100644 ccc?

[root@git data]# git log --oneline --decorate

435e6cf(HEAD,master) add ccc

925e528 add bbb

c9b595d add aaa

dcccbf1 add 123 > a

bd2dea9 add index

951adcc mv a.txt a

799bc0a modified a a.txt

295e997 add newfile a

----------------------------------------------------------------------------------------

#切換分支#:

[root@git data]# git checkout testing

Switched to branch 'testing'

[root@git data]# git branch

? master

*testing

#刪除testing分支#:

[root@git data]# ll

-rw-r--r-- 1 root root 0 Jan 24 17:47 a

[root@git data]# git branch -d testing

Deleted branch testing (was dcccbf1)

[root@git data]# git branch

*master

[root@git data]#?

#創(chuàng)建并且切換到新的分支#:

[root@git data]# git checkout -b testing

Switched to a new branch 'testing'

[root@git data]# git branch

? master

*testing

[root@git data]# ls

a aaa bbb ccc

[root@git data]# ll

total 4

-rw-r--r-- 1 root root 10 Jan 24 17:41 a

-rw-r--r-- 1 root root 10 Jan 24 18:01 aaa

-rw-r--r-- 1 root root 10 Jan 24 18:01 bbb

-rw-r--r-- 1 root root 10 Jan 24 18:01 ccc

#查看指針指向#:

[root@git data]# git log --oneline --decorate

435e6cf(HEAD,testing,master) add ccc

925e528 add bbb

c9b595d add aaa

dcccbf1 add 123 > a

bd2dea9 add index

951adcc mv a.txt a

799bc0a modified a a.txt

295e997 add newfile a

[root@git data]# touch test-ddd

[root@git data]# git add .

[root@git data]# git commit -m "add newfile test-ddd"

[testing de60495] add newfile test-ddd

1 file changed,1 insertion(+),0 deletions(-)

create mode 100644 test-ddd

[root@git ~]# git branch

? master

*testing

----------------------------------------------------------------------------------------

#返回到主干:(分支不會(huì)影響主干)#

[root@git data]# git checkout master

Switched to branch 'master'

[root@git data]# git branch

*master

? testing

[root@git data]# ll

total 4

-rw-r--r-- 1 root root 10 Jan 24 17:41 a

-rw-r--r-- 1 root root 10 Jan 24 18:02 aaa

-rw-r--r-- 1 root root 10 Jan 24 18:02 bbb

-rw-r--r-- 1 root root 10 Jan 24 18:02 ccc

#查看指針指向#:

[root@git data]# git log --oneline --decorate

435e6cf(HEAD,master) add ccc

925e528 add bbb

c9b595d add aaa

dcccbf1 add 123 > a

bd2dea9 add index

951adcc mv a.txt a

799bc0a modified a a.txt

295e997 add newfile a

----------------------------------------------------------------------------------------

#新添加了一個(gè)master-eee#

[root@git data]# touch master-eee

[root@git data]# git add .

[root@git data]# git commit -m "add newfile master-eee"

[master acf85f7] add newfile master-eee

1 file changed,0 insertion(+),0 deletions(-)

create mode 100644 master-eee

----------------------------------------------------------------------------------------

#查看指針指向#:

[root@git data]# git log --oneline --decorate

acf85f7 (HEAD,master) add newfile master-eee

435e6cf add ccc

925e528 add bbb

c9b595d add aaa

dcccbf1 add 123 > a

bd2dea9 add index

951adcc mv a.txt a

799bc0a modified a a.txt

295e997 add newfile a

----------------------------------------------------------------------------------------

[root@git data]# git merge testing

Merge branch 'testing'

merge testing

#功能寫(xiě)完,刪除testing分支#:

[root@git data]# git checkout master

Switched to branch 'master'

[root@git data]# git branch -d testing

Deleted branch testing (was de60495)

#查看指針指向#:

[root@git data]# git log --oneline --decorate

b12af78 (HEAD,master) Merge branch 'testing' merge testing

acf85f7 add newfile master-eee

435e6cf add ccc

925e528 add bbb

c9b595d add aaa

dcccbf1 add 123 > a

bd2dea9 add index

951adcc mv a.txt a

799bc0a modified a a.txt

295e997 add newfile a

----------------------------------------------------------------------------------------

###git代碼沖突合并###:

先創(chuàng)建分支:

[root@git data]# git branch testing

[root@git data]# git branch

* master

? testing

[root@git data]# echo master >> aaa

[root@git data]# git commit -am "modified aaa add master"

[master f4d31cb] modified aaa add master

1 file changed,0 insertion(+)

[root@git data]# git status

#On branch master

nothing to commit,working directory clean

[root@git data]# cat aaa

master

[root@git data]# git checkout testing

Switched to branch 'testing'

[root@git data]# cat aaa

[root@git data]# echo testing >> aaa

[root@git data]# git commit -am "modified add testing"

[testing 20a3ef1] modified add testing

1 file changed,1 insertion(+)

[root@git data]# cat aaa

testing

[root@git data]#

#切換到master#:

[root@git data]# git checkout master

[root@git data]# git branch

* master

? testing

[root@git data]# git merge testing

Auto-merging aaa

CONFLICT (content): Merge config in aaa

[root@git data]# cat aaa

<<<<<<< HEAD

master

========

testing

>>>>>>>> testing

[root@git data]# git status

#On branch master

#You branch master

# (fix conflicts and run "git commit")

#Unmerged paths:

# (use "git add <file>..." to mark resolution)

#

#? both modified:? aaa

#

----------------------------------------------------------------------------------------

#出現(xiàn)沖突了邑贴,只能通過(guò)手動(dòng)來(lái)操作:

[root@git data]# cat aaa

<<<<<<< HEAD

master

========

testing

>>>>>>>> testing

[root@git data]# vim aaa

master

testing

[root@git data]# git commit -am "merge testing"

[master f7ed010] merge testing

[root@git data]# git status

#On branch master

nothing to commit,working directory clean

[root@git data]# cat aaa

master

testing

----------------------------------------------------------------------------------------

###git便簽使用###:

#標(biāo)簽也是指向了一次commit提交限府,是一個(gè)里程碑式的標(biāo)簽,回滾打標(biāo)簽直接加標(biāo)符號(hào)痢缎,

不需要加唯一子串不好記

# -a指定標(biāo)簽名字 -m 指定說(shuō)明文字

[root@git data]# git tag -a v1.0 -m "aaa bbb master testing version v1.0"

[root@git data]# git tag

v1.0

#指定某一次的提交為便簽

[root@git data]# git tag -a v2.0 dbead4c -m "add bbb version v2.0"

#查看v1.0的信息 git show 加標(biāo)簽查看

[root@git data]# git show v1.0

#直接還原數(shù)據(jù)到v2.0

[root@git data]# git reset --hard v2.0

HEAD 現(xiàn)在位于 dbead4c add bbb

[root@git data]# ll

總用量 4

-rw-r--r-- 1 root root 8 2月 23 11:26 a

-rw-r--r-- 1 root root 0 2月 23 11:26 b

#刪除標(biāo)簽 -d 參數(shù)#

[root@git data]# git tag -d v2.0

----------------------------------------------------------------------------------------

[root@git data]# git log --oneline

f7ed010 merge testing

20a3ef1 modified add testing

f4d31cb modified aaa add master

b12af78 Merge branch 'testing' merge testing

acf85f7 add newfile master-eee

bd2dea9 add index

[root@git data]# git tag -a v1.0 bd2dea9 -m "tag v1.0 add index"

[root@git data]#

[root@git data]# git tag

v1.0

[root@git data]#

[root@git data]# git reset --hard v1.0

HEAD is now at bd2dea9 add index

[root@git data]# git tag -a "v2.0" -m "XXX"

[root@git data]# git tag

v1.0

v2.0

----------------------------------------------------------------------------------------

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末傲绣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挫酿,更是在濱河造成了極大的恐慌宿稀,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嵌洼,死亡現(xiàn)場(chǎng)離奇詭異案疲,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)麻养,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)褐啡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人鳖昌,你說(shuō)我怎么就攤上這事备畦〉挽” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵懂盐,是天一觀的道長(zhǎng)褥赊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)莉恼,這世上最難降的妖魔是什么拌喉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮俐银,結(jié)果婚禮上尿背,老公的妹妹穿的比我還像新娘。我一直安慰自己捶惜,他們只是感情好残家,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著售躁,像睡著了一般坞淮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陪捷,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天回窘,我揣著相機(jī)與錄音,去河邊找鬼市袖。 笑死啡直,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的苍碟。 我是一名探鬼主播酒觅,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼微峰!你這毒婦竟也來(lái)了舷丹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蜓肆,失蹤者是張志新(化名)和其女友劉穎颜凯,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體仗扬,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡症概,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了早芭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彼城。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出募壕,到底是詐尸還是另有隱情调炬,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布司抱,位于F島的核電站,受9級(jí)特大地震影響黎烈,放射性物質(zhì)發(fā)生泄漏习柠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一照棋、第九天 我趴在偏房一處隱蔽的房頂上張望资溃。 院中可真熱鬧,春花似錦烈炭、人聲如沸溶锭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)趴捅。三九已至,卻和暖如春霹疫,著一層夾襖步出監(jiān)牢的瞬間拱绑,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工丽蝎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猎拨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓屠阻,卻偏偏與公主長(zhǎng)得像红省,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子国觉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

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

  • 關(guān)于Git的總結(jié): 一吧恃、Git的安裝: 1、系統(tǒng)環(huán)境準(zhǔn)備 [root@git ~]# cat /etc/redha...
    你好樹(shù)洞先生閱讀 759評(píng)論 0 1
  • 一麻诀、基本概念: 注:對(duì)于git的分布式概念及其優(yōu)點(diǎn)蚜枢,不重復(fù)說(shuō)明,自己百度或谷歌针饥。本文中涉及到指令前面有$的厂抽,在cm...
    大廠offer閱讀 1,425評(píng)論 0 3
  • 前言 Git使用教程 Git是什么 Git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目丁眼。 ...
    90后的思維閱讀 906評(píng)論 0 0
  • 1. GIT命令 git init在本地新建一個(gè)repo筷凤,進(jìn)入一個(gè)項(xiàng)目目錄,執(zhí)行g(shù)it init,會(huì)初始化一個(gè)re...
    江邊一蓑煙閱讀 799評(píng)論 0 0
  • 查看藐守、添加挪丢、提交、刪除卢厂、找回乾蓬,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,111評(píng)論 0 2