Git commits歷史是如何做到如此清爽的?

時間 2021-05-12 06:04:18

1樓:汪志成

Angular開發組有乙個很明確的commit規範,包括英語語法要求之類的都給你講清楚了,不想研究的話直接follow就行了。

至於時間線方面,rebase已經是常規的開發習慣了,只是有些場合有坑,坑不多,自己用用,避開就是了。

2樓:程墨Morgan

要求功能分支進入master branch必須要squash-and-rebase,不許用merge,在github(或者你喜歡的git repo管理工具)中加上這樣的強制措施。

merge的好處,是每乙個commit都可以看見,配合使用git bisect,可以找到乙個bug具體到底是哪乙個commit引入的;缺點,就是git的commit圖變成下面這個鳥樣。

如果團隊成員很多,分支也很多,簡直就沒法看啊,所以還是強制使用squash-and-rebase吧。

3樓:

最權威的答案 @尤雨溪 已經說了"多用 rebase"

我也覺得 rebase 是絕大多數人 git commit 混亂的原因:

1. 不會合併補丁

2. 不會修改倉促的 commit message

3. 不會調整 git commit 順序

等。因為我在 @洪謙 指導下給Wine 貢獻過幾十個補丁,正好 Wine 對補丁有著嚴格的要求,所以對 git flow 比較熟悉。

絕大多數人對於 git 的認識只停留在git status, git add, git push, git pull, 好一點會知道git merge, 那就是全部了。

試試你能回答出以下問題不:

git push origin master命令中,origin 代表的是什麼,整個命令是什麼意思,origin 可以修改不

git fetch origin; git rebase origin master 這些命令知道嗎?跟 merge 有什麼區別?

git 如何合併兩個補丁,對第三個補丁進行修改?(這個很重要,因為你不會才導致 git commit 的資訊沒有意義,commit 不夠小和多)

又或者,你試過合併 commit 嗎?commit message 寫的不好時如何修改?如何改變 commit 的順序?

如果以上有不清楚的話,那麼我希望以下的文章對你有幫助。

太長,在知乎貼上不了。

請檢視你們仍未掌握那天所學的 git 知識

4樓:jediego

的commit 更讚,使用了commitizen外掛程式來做commit控制,這樣的commit甚至可以用來生成非常漂亮的changelog

5樓:

git pull --rebase

git rebase 是正解, 無意義的merge,還有無意義的commit message 都可以通過 rebase 做到合併,丟棄,修改commit message

你也可以使用 git rebase -i 來進入互動式的操作

6樓:rebornix

老闆問我如何能做到 commit 這麼少,我說我幾乎每次做 feature 完了都是先 rebase 再 squash,下次我注意 ...

7樓:尤雨溪

多用 rebase

我真是服了貴乎了,樓下居然有人能從 commit 風格看出我愛慕虛榮,哈哈哈哈,只能說這葡萄是很甜了

我 rebase 純粹是因為我不喜歡 git log --graph 的時候一堆 branch 擾亂視線。另外,難道你不知道 rebase 不一定要 squash 的?

如何認識歷史是與時俱進的?

滕浩 歷史不會與時俱進,已經發生的不可更改,只有對歷史的闡釋才與時俱進,但更多時候這種與時俱進的闡釋是對時代強權的諂媚,反而與眾不同的堅持守一更顯得可貴。 真三三無 解讀歷史的觀念是與時俱進的。但歷史,就像是乙隻趴在地上的烏龜,它的本來面目之所以那樣,是有現實基礎的,永遠都不會根據解讀者觀念的變化而...

如何理解「歷史哲學是歷史學最壞的敵人」?

王凌楓 歷史哲學這個詞本身就有問題,歷史本來就是研究已發生的事實,總結凝練歷史規律和歷史影響下人的行為。歷史哲學研究的是個啥?研究古人的歷史觀,還是現代人的歷史觀?這屬於歷史學。研究古人的哲學和思想發展?這屬於哲學的歷史發展。歷史哲學到底是研究啥的?誰創造了這麼個詞,搞的人一頭霧水。 司洪亮 這個問...

菩薩是如何影響人類歷史的?

無心道人無恥之徒 漢傳佛教在中國有了1800年的歷史,中國歷史如果去除漢傳佛教的思想,就不存在中華文明與中華民族。菩薩思想,恰恰是漢傳佛教的核心思想。 淨土觀自在 想一想,中國如果沒有孔子和老子,沒有後來的佛教。中國還叫不叫中國。乙個國家,乙個民族,如果沒有文化認同感,沒有自己的民族語言,倫理,道德...