假如我開發一個軟體需要用到git來管理,這個軟體有很多的功能模組,請問:
1、每實現一個功能功能就只commit一次嗎?
2、只要覺得有commit的必要就commit,例如修改個小bug,然後commit
我是新手,每次提交修改的文件都很多,很亂,有些修改還是跟這次commit無關的文件。
請問各位是怎麼做的呢? 謝謝。
学习是最好的投资!
可以參考下git flow 我覺得可以從大的點上解決你的疑惑
http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
一般會有這麼多分支 master develop 各種feature分支 bug_fix分支 hot_fix分支 master一般是正式線上版,develop不用說,開發的,不過放在develop裡面的也已經是相對穩定的分支,而你要開發新的特性的時候,確保你在develop分支上新建一條feature_XXX分支,各種commit commit commit, 如果後期發現之前的版本有某個bug,不影響線上的會建立一條bug_fix_XXX分支,而影響線上的嚴重bug則新建hot_fix分支,hot_fix與bug_fix不同,解決bug後會將hot_fix分支merge到master注意是master。
另外,如果你想保持你分支整潔乾淨,你可能需要用到rebase來合併程式碼,而不是merge
git的玩意兒推薦看下progit吧,非常之全面。
我通常是
即使只是加了一行程式碼,也可一作為一個 commit。 無關的程式碼不要提交到本次 commit。
你要知道你要達到的效果是,如果有一天我要你回滾到某個歷史狀態,你能很快的找到那次提交並回滾。如果做不到這一點,你怎麼 commit 都無所謂了。 例如某一次你將一個預設值由50改為100,那麼,這就應該作為一次提交。如果你順手修了一個 bug,也不能放在這次提交裡,要不然要怎麼回滾到 50 呢?難道你回滾了之後還要重新修復那個 bug 嗎?
你不知道怎麼提交是因為你沒有一個確定的目的。
我是這麼認為的。
要很詳細的話,就只能一個具體的功能地提交了。 不過好費事兒。 另外,也可以使用git gui 中文提交,描述清楚點。
這個隨意啊,主要還是為了以後自己或是別人看起來方便,能知道你commit的信息代碼裡改了那些,,,,與功能無關的頁面commit 信息裡我也會說清楚的。反正勤於commit的吧,一個功能提交一次肯定不夠的
多用rebase,少用merge
可以參考下git flow 我覺得可以從大的點上解決你的疑惑
http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
一般會有這麼多分支 master develop 各種feature分支 bug_fix分支 hot_fix分支
master一般是正式線上版,develop不用說,開發的,不過放在develop裡面的也已經是相對穩定的分支,而你要開發新的特性的時候,確保你在develop分支上新建一條feature_XXX分支,各種commit commit commit,
如果後期發現之前的版本有某個bug,不影響線上的會建立一條bug_fix_XXX分支,而影響線上的嚴重bug則新建hot_fix分支,hot_fix與bug_fix不同,解決bug後會將hot_fix分支merge到master注意是master。
另外,如果你想保持你分支整潔乾淨,你可能需要用到rebase來合併程式碼,而不是merge
git的玩意兒推薦看下progit吧,非常之全面。
我通常是
即使只是加了一行程式碼,也可一作為一個 commit。
無關的程式碼不要提交到本次 commit。
你要知道你要達到的效果是,如果有一天我要你回滾到某個歷史狀態,你能很快的找到那次提交並回滾。如果做不到這一點,你怎麼 commit 都無所謂了。
例如某一次你將一個預設值由50改為100,那麼,這就應該作為一次提交。如果你順手修了一個 bug,也不能放在這次提交裡,要不然要怎麼回滾到 50 呢?難道你回滾了之後還要重新修復那個 bug 嗎?
你不知道怎麼提交是因為你沒有一個確定的目的。
我是這麼認為的。
要很詳細的話,就只能一個具體的功能地提交了。
不過好費事兒。
另外,也可以使用git gui 中文提交,描述清楚點。
這個隨意啊,主要還是為了以後自己或是別人看起來方便,能知道你commit的信息代碼裡改了那些,,,,與功能無關的頁面commit 信息裡我也會說清楚的。反正勤於commit的吧,一個功能提交一次肯定不夠的
多用rebase,少用merge