git使用的正確姿勢

聲明:這是個人的喜好習慣和經(jīng)驗,目的是職業(yè)新人了解最少的命令捏鱼,最高效的管理代碼执庐。本文不涉及git的高級操作假設(shè)是在一個大公司里面工作,一個代碼庫里导梆,有master轨淌,A迂烁,B,C......等遠端分支递鹉。首先會通過命令獲取到代碼到本地盟步,假設(shè)下載下來當前分支是master。

1. 在master分支開發(fā)代碼并提交

? ? ? ? 寫代碼前和合代碼時都要對代碼進行g(shù)it pull操作更新躏结。中間寫代碼時發(fā)現(xiàn)別人合了代碼却盘,最好也更新一下,不讓等自己代碼調(diào)測完成合代碼時發(fā)現(xiàn)別人的改動波及自己的功能媳拴,那就得重改重測了黄橘。

????????git pull代碼沖突的時才需要做特殊處理,這時候代碼是pull不下來的屈溉,就先git stash -u把自己代碼全部暫存起來(建議只在更新代碼時用git stash塞关,正因為stash很方便,所以濫用的話stash里面會有很多你不認識的代碼子巾,我平時可能5分鐘就忘了當時stash的是什么代碼)帆赢,這時候git pull是不會沖突的,代碼更新到最新了砰左,然后git stash pop匿醒,再慢慢解決沖突。

? ? ? ? 因為這時候沖突的代碼有兩份夾雜在你的代碼編輯器里缠导,沖突少的時候可以很方便的解決廉羔,但是有時候沖突非常多,夾雜的兩份代碼讓你根本分不清楚僻造。這種情況就把當前代碼git reset --hard [pull前的代碼id]憋他。這時候stash里面因為沖突并沒有pop出來,git幫你保留了一份副本髓削,這時候再重新pop出來竹挡,再用最傳統(tǒng)的用比對工具合入代碼吧。

? ? ? ? 如果沖突不多的話立膛,就直接在代碼編輯器里面把代碼改成自己想要的代碼揪罕,然后git add -A,git commit 就可以合入代碼了宝泵。

2. 切換分支代碼開發(fā)

2.1 保存當前分支

? ? ? ? git stash -u的方法是很方便的好啰,但前面我說了最好不要用。正確的姿勢是git add -A儿奶,git commit -m框往,不要把代碼推送,只是暫時commit起來闯捎,代碼就肯定不會丟了椰弊。(注意:養(yǎng)成切換分支的時候许溅,本地一定是干凈的,git status沒有修改的文件)

2.2 切換分支開發(fā)

2.3 回到原分支取代碼

? ? ? ? 切回原分支后秉版,git reset [之前暫存的commitid的前一個id]贤重,就能得到之前的代碼了,然后就繼續(xù)開發(fā)代碼就好了沐飘。

3. git cherry-pick [commitid]

? ? ? ? 很好用的命令游桩,必學(xué)。

? ??????

4.其他的好習慣的點

每次用完stash耐朴,要保證stash是清空的借卧,否則下次你看stash的時候幾乎都會忘了之前的stash是什么內(nèi)容,刪也不敢刪筛峭。暫存代碼就用commit就好了铐刘,commit帶信息。雖然stash的時候也可以帶附加信息影晓,但是commit是在和當前分支對應(yīng)的镰吵。stash的空間卻是所有分支共用的。

分支時常做一下檢查挂签,沒用的分支要清理疤祭。特別是臨時分支。

做一個大需求的時候饵婆,可能周期比較長勺馆,代碼變動可能包含(重構(gòu),優(yōu)化侨核,bug解決草穆,新接口開發(fā),工具輔助函數(shù)搓译,第三方庫代碼)等悲柱,意思就是一些無害合入且基本已經(jīng)固定需要這樣修改的了,可以先合入些己。這樣你在開發(fā)代碼的時候就不至于看到一大片的改動豌鸡,你關(guān)心檢查的地方就會變少,因為你已經(jīng)把一些肯定正確的代碼合上去了段标,就少花了一部分精力在檢查這部分代碼上涯冠。另外還有一些代碼優(yōu)化,小重構(gòu)等怀樟,盡早合上去功偿,否則到時候可能會有很多沖突盆佣。即小步迭代往堡。這類似一個功能函數(shù)只做一件事械荷,不要一次代碼合入里面做了太多的事情,到時候代碼在哪次合入的都分不清楚虑灰,就失去了commit message的意義吨瞎。

新建的分支名寺晌,最好有一套自己的命名規(guī)則爷恳。臨時分支就加下temp,提醒自己記得把它處理掉然想,有的人創(chuàng)建分支時就很隨意对湃,隨便取個名字崖叫。對自己要求嚴格些,會產(chǎn)生意想不到的效率拍柒。

有的人習慣一天寫完代碼就commit一次心傀,到合入代碼時就有多次commit記錄。不要這樣做拆讯,commit要是有意義的一個里程碑脂男,而不是無意義的時間軸記錄。比如完成了接口編寫可以commit一次种呐,假如沒什么特別的意義宰翅,第二天來的時候,最好是git reset到上一個id爽室,繼續(xù)開發(fā)代碼汁讼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肮之,隨后出現(xiàn)的幾起案子掉缺,更是在濱河造成了極大的恐慌,老刑警劉巖戈擒,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眶明,死亡現(xiàn)場離奇詭異,居然都是意外死亡筐高,警方通過查閱死者的電腦和手機搜囱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柑土,“玉大人蜀肘,你說我怎么就攤上這事』粒” “怎么了扮宠?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狐榔。 經(jīng)常有香客問我坛增,道長获雕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任收捣,我火速辦了婚禮届案,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘罢艾。我一直安慰自己楣颠,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布咐蚯。 她就那樣靜靜地躺著童漩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪春锋。 梳的紋絲不亂的頭發(fā)上睁冬,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音看疙,去河邊找鬼豆拨。 笑死,一個胖子當著我的面吹牛能庆,可吹牛的內(nèi)容都是我干的施禾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搁胆,長吁一口氣:“原來是場噩夢啊……” “哼弥搞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渠旁,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤攀例,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后顾腊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粤铭,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年杂靶,在試婚紗的時候發(fā)現(xiàn)自己被綠了梆惯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吗垮,死狀恐怖垛吗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烁登,我是刑警寧澤怯屉,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響锨络,放射性物質(zhì)發(fā)生泄漏蝗敢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一足删、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锁右,春花似錦失受、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至码泞,卻和暖如春兄旬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背余寥。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工领铐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宋舷。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓绪撵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親祝蝠。 傳聞我的和親對象是個殘疾皇子音诈,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

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

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來绎狭。這樣一來细溅,任何一處協(xié)同...
    __silhouette閱讀 15,887評論 5 147
  • Git 命令行學(xué)習筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 3,921評論 0 11
  • 就在上周,哈夫遇到一宗一直糾結(jié)在父母關(guān)系當中甚至影響親子關(guān)系和親密關(guān)系的個案蹦狂,經(jīng)案主同意今天分享給大家承疲,期待就如案...
    泉鐘心理閱讀 212評論 0 1
  • 今天的題目來源于喜歡的一段話: 孩子愛模仿親近的人啼辣, 如果你發(fā)現(xiàn)了他的什么壞習慣啊研, 不要急著發(fā)脾氣斥責, 先好好想...
    王朗_17ff閱讀 242評論 0 0
  • 最近一直在寫React Native相關(guān)的東西,擔心會淡忘Java的東西党远,所以買了本JDK8 閑來瞅瞅削解,沒想到卻被...
    ShunQ_Wang閱讀 2,993評論 0 4