日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 Git 改进工作方式

發布時間:2025/7/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Git 改进工作方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??


一、什么是 Git

請自行 google

二、Git 與 SVN

http://www.jianshu.com/p/bfec042349ca?這里說的都是對的

但是在實際工作中,分支即是 Git 與 SVN 沒有區別又是與 SVN 區別最大的部分,說它沒有區別是因為 SVN 也有分支,說它有區別是因為使用 Git 可以把分支的特性充分發揮而不需要花費太高成本(時間),而 SVN 的分支在實際工作中卻不是那么多人愿意去用的。

另一個有用的區別是分布式,Git 會在本地建立完事的版本庫(Local Reposity),這對混合使用 VCS 非常有幫助,你可以按照自己的想法來管理版本,建立 Git 庫的成本卻只有一句命令

git?init

而后只需要保持其中一個分支與團隊中使用的版本庫同步即可。

三、接受 Git 的理念

3.1 提交=完成一小件事

首先,Git 的提交與 SVN 相比,它更鼓勵一次提交所有變更,而 SVN 可以比較方便地選擇性提交或更新部分代碼到最新版本,見到過很多開發都喜歡這么干,以保持代碼在本地能夠正常運行,但這么做的缺點也顯而易見,一是容易遺漏,不管是 commit 或 update,一旦遺漏就可能出現莫名其秒的問題,最后,噢,我怎么把 XXX 提交上去/更新了。

其次,默認情況下,Git 強制在提交時填寫提交說明,而 Svn 可以什么都不寫(出問題,你猜呀!),我也用過 SVN,在使用 SVN 的那段歲月也曾不寫任何提交說明,為什么不寫?不是不想寫,是不知道有什么好寫的,因為很多時候,提交涉及的變更可能只是某個/多個功能點改進的一部分,都不知道該怎么描述或者要描述清楚得寫一大堆,誰有這功夫,干脆不寫最方便。

代碼的變更,都是有目的的,如果我們能夠把每次代碼變更的目的想清楚,那是不是就可以根據變更目的來填寫提交說明?

Bingo,改進工作方式第一點:Coding 前想清楚目的(為了改#88號 Bug,為了增加 xxxAPI等)。讓每一次 commit 有意義,而不是把 commit 變成下班打卡。

3.2 合并=一系列事情的集合=一次有用的變更

VCS 的目的是記錄變更,便于后期追溯問題,但如果某次變更涉及的文件或變更內容過多,這將增加問題追溯的困難,那么如何才能更好地追溯問題呢?

控制粒度。為達到變更目的,并不一定都是非常簡單的變更,變更可能會涉及多個方面,比如增加一個新功能時,可能涉及到服務端 service、dao 開發、頁面功能開發,可以把其中一小件事作為一次提交,而多個提交處于同一個分支,在所有變更完成后再把分支全部合并到與團隊同步的分支上,表示完成某一件事情(業務)。

3.3 分支=隔離變更

隔離:不同分支可以按照自己的目標發展,而不需要關心其他分支的變更所產生的影響。舉個例子:當你正在為增加某一個功能點而噼里啪啦敲擊著代碼時,突然測試妹子跑來跟你說某 bug 調皮搗蛋了,你得馬上管管。沒有分支怎么辦?寫了一半的代碼是提交還是不提交?有 SVN 玩得溜的同學:嘿,你讓一讓,寫了一半的代碼當然不能提交,先看一下線上變更情況,再選擇性地更新部分代碼,然后改完 bug,再選擇性地提交只與 bug 相關的代碼,搞定!OMG,這也行?還真行,就是比較費腦子,本來 VCS 該干的活全讓這位同學給干了。換成分支會是什么情況?

git?add?. git?ci?-am?'Template?commit'?#use?git?ci?--amend?fix?template?commit git?co?master?#any?problem?branch #fix?problem git?add?. git?ci?-am?'Fixes?#88' git?co?feature-yourbranch #continue?coding...

別看這么一堆代碼,想要表達的意思很簡單:切換到問題分支,改完提交,再換回當前分支繼續之前的代碼。

切換:隔離會帶來什么樣的情景?某分支用來開發新功能,某分支用來修復某個 Bug,某分支用來與別人同步協作,隔離帶來的好處不言而寓,切換就是實現這些隔離的切換,為什么要提切換呢?因為真的很重要,也真的很方便

git?co?目標分支

所以,代碼變更,切個分支,養成好習慣

四、分支管理策略

http://blog.jobbole.com/23398/?

http://kb.cnblogs.com/page/132209/

核心是理解下面這個圖:

每個分支都是有意義的(某個里程碑版本、某個 BUG 修復的版本),沒有分支,我們會忽略某些重要的提交

五、一些可以讓你事半功倍的配置(如果你只對 GUI 感興趣,請略過)

1.?簡化 git 命令

git?config?--global?alias.lol?"log?--graph?--pretty=format:'%Cred%h%Creset?-%C(yellow)%d%Creset?%s?%Cgreen(%cr)?%C(bold?blue)<%an>%Creset'?--abbrev-commit"?#git?lol?--all?看效果 git?config?--global??alias.st?status?????????#git?st?-s git?config?--global??alias.ci?commit?????????#git?ci?-am?'commit.' git?config?--global??alias.df?diff???????????#git?df? git?config?--global??alias.co?checkout???????#git?co?master git?config?--global??alias.br?branch?????????#git?br?-av

2. 簡化 shell 命令

http://man.linuxde.net/alias

alias?gst="git?st?-s?" alias?gad="git?add?.?" alias?gbr="git?br?-av" alias?glog="git?lol?--all" alias?gup="git?remote?update" #你懂的

六、總結

Git 不僅僅是個版本管理工具,理解 Git,掌握 Git,讓 Git 幫助減少問題的產生,提高生產效率。


相關連接:

話說Svn與Git的區別(以后別再問我了):http://www.jianshu.com/p/bfec042349ca

阮一峰:Git分支管理策略:http://blog.jobbole.com/23398/

GIT分支管理是一門藝術:http://kb.cnblogs.com/page/132209/

Alias 命令:http://man.linuxde.net/alias


轉載于:https://my.oschina.net/mays/blog/665416

總結

以上是生活随笔為你收集整理的使用 Git 改进工作方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。