現(xiàn)在前面的話
從十月份上班之后倒庵,手指就特別不靈活褒墨,由于工單趕得比較緊,所以每天敲代碼擎宝,就特別多郁妈,由于操作習(xí)慣和姿勢的問題,導(dǎo)致左右手同時“殘廢”绍申,左手大拇指噩咪,小指锄奢,右手大拇指都有強(qiáng)烈的疼痛感。這樣一下來剧腻,就導(dǎo)致敲鍵盤困難拘央,然后輸入困難,最后的結(jié)果是书在,工作效率下降灰伟,產(chǎn)出低......
所以作為一個合格的軟件工程師,必須要有敏捷的頭腦儒旬,還有有強(qiáng)勁的體魄栏账。
廢話不多說,進(jìn)入今天的正題栈源。
由于測試同學(xué)在使用git方面出現(xiàn)了或多或少的問題挡爵,導(dǎo)致測試不流暢,測試時間延期甚垦。為了解決這些看似不大茶鹃,但是非常關(guān)鍵的問題,如何正確的艰亮,切換分支闭翩,特意做以下總結(jié)和分析,若有不周到地方迄埃,請指正疗韵。
宣傳語
歷經(jīng)兩個半月的準(zhǔn)備,三次大改版侄非,十七次小改版蕉汪。le1024終于要和大家見面了。
le1024每天推薦1~3段逞怨,有趣者疤、有愛、有故事的視頻骇钦。
為您工作宛渐、學(xué)習(xí)竞漾、生活之余增加一點(diǎn)快樂的感覺眯搭。
1、神馬是Git
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)(沒有之一)
Git的特點(diǎn)业岁,簡單來說:高端大氣上檔次
版本控制系統(tǒng)是神馬東西鳞仙?
想刪除一個段落,又怕將來想恢復(fù)找不回來怎么辦笔时?有辦法棍好,先把之前的文件“另存為”重命名為一個新的word文件,再接著該,改到一定程度借笙,再另存為一個新文件扒怖,這樣一直改下去,最后你的Word就變成了下面這個樣子:
so, 每個人都從這個階段走過业稼,改論文的痛苦盗痒,誰該誰知道。
那么低散,Git就是做這件事情的俯邓,它會保留你每次修改,并且可以自由前進(jìn)(重新編輯)熔号,后退(查看舊版本)的操作稽鞭。讓這種文檔編輯,變得so easy引镊。
2朦蕴、如何安裝Git
1、Ubuntu
sudo apt-get install git-core
或
sudo apt-get install git
2弟头、Mac OS
-
首先確保安裝有
Homebrew
, 倘若沒有安裝梦重,執(zhí)行下面命令ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
使用
Homebrew
安裝軟件brew install git
Git安裝完之后,需要配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
這個配置亮瓷,是機(jī)器的區(qū)分號琴拧,也是每一個代碼提交者的代號。
3嘱支、Git三棵樹
你的本地倉庫由 git 維護(hù)的三棵“樹”組成蚓胸。
第一個是你的工作目錄
,它持有實(shí)際文件除师;
第二個是 暫存區(qū)(Index)
沛膳,它像個緩存區(qū)域,臨時保存你的改動汛聚;
最后是 HEAD
锹安,它指向你最后一次提交的結(jié)果
4、如何切分支
1) 如果 暫存區(qū)(Index)
倚舀,沒有任何修改的情況下叹哭,直接
git checkout 目標(biāo)分支xxxx
2) 如果 暫存區(qū)(Index)
,新增加了文件
兩個分支 test1102 和 master痕貌,如果test1102新增加的文件风罩,在 暫存區(qū),并沒有進(jìn)行commit操作舵稠,同上
git checkout 目標(biāo)分支xxxx
這樣不僅可以切換分支超升,并且還可以把新創(chuàng)建的文件入宦,帶到master上,并且還在 暫存區(qū)
3) 如果 暫存區(qū)(Index)
室琢,不僅有新增加的文件乾闰,并且還有新修改的文件,執(zhí)行上述命令是切不了分支的盈滴,你會看到如下的提示:
有如下幾種解決方式:
1汹忠、暴力、魯莽型
優(yōu)點(diǎn):快速雹熬,簡潔宽菜。 缺點(diǎn):暫存區(qū)
修改文件不會保存。
2竿报、溫柔铅乡、周到型
溫柔型,保存了暫存區(qū)
中的所有修改烈菌,并且安全把所修改內(nèi)容帶到目標(biāo)分支阵幸。具體操作如下
stash
之前
stash
ing,進(jìn)行stash
操作時芽世,需要注意保持 stash
堆棧的干凈挚赊,整潔。
切換到目標(biāo)分支济瓢,然后
stash
pop 出來遇到這種情況荠割,就要謹(jǐn)慎操作。因?yàn)橛写a沖突旺矾,明顯標(biāo)志
both modified
所以先要解決沖突蔑鹦,為了不給開發(fā)同學(xué)添加額外的負(fù)擔(dān),我們自己動手箕宙。 其實(shí)在控制臺中已經(jīng)有充分的提示
git add <file> ... 不推薦
git reset HEAD <file> ... 可以推薦嚎朽,安全的
我使用 git reset HEAD .
, 最后的結(jié)果如下。
git stash作用
:儲藏可以獲取你工作目錄的中間狀態(tài)——也就是你修改過的被追蹤的文件和暫存的變更——并將它保存到一個未完結(jié)變更的堆棧中柬帕,隨時可以重新應(yīng)用哟忍。參考這里
優(yōu)點(diǎn):保存完整的修改記錄。 缺點(diǎn): 操作麻煩陷寝,容易出錯锅很。
3、破壞型
git add .
git commit -m "balabala..."
git checkout 目標(biāo)分支xxxx
強(qiáng)烈不推薦這種盼铁,做法粗蔚。這樣做危險系數(shù)很大尝偎,如果不小心做了push操作饶火,開發(fā)很生氣鹏控,后果很嚴(yán)重!7羟蕖当辐!
4、詭異型
- lock 文件鲤看,切換不了分支
解決辦法缘揪,找到這個文件,使用 rm -rf xxxx
刪掉他即可义桂。
- 內(nèi)存不足找筝,切換不了分支
解決辦法,只能讓運(yùn)維刪除一些其他文件慷吊。
4袖裕、Git 有用的命令
1、git gc
具體參考 git gc
優(yōu)點(diǎn):可以使得切換分支溉瓶,變得快一些急鳄。
2、git branch | grep 201408 | xargs git branch -D
參考這里
批量刪除分支之前
執(zhí)行命令之后
刪除分支之后堰酿,不會影響開發(fā)的代碼疾宏。
5、注意
只要不進(jìn)行任何 git add ...
和 git push ...
就不會印象開發(fā)的分支触创,不會對他們的代碼造成影響坎藐。
參考:
http://rogerdudler.github.io/git-guide/index.zh.html
http://www.cnblogs.com/renkangke/archive/2013/05/08/3067462.html
http://scriptogr.am/pison/post/git
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000