代码之家  ›  专栏  ›  技术社区  ›  Mark Borgerding

使用git的常见反模式是什么?[关闭]

  •  25
  • Mark Borgerding  · 技术社区  · 6 年前

    作为一个git新手,我意识到我一直在使用它,好像它是颠覆。例如,总是在master上工作,在提取更改之前不在本地提交等。这通常会导致可避免的手动合并情况。使用git的其他常见反模式是什么?

    6 回复  |  直到 12 年前
        1
  •  20
  •   Jakub Narębski    15 年前

    变化的大球

    当您正在编写提交消息,并且您不知道要在更改的单行摘要中放置什么时,这可能意味着您在一个提交中放置了太多独立的内容。最好将commit拆分成更小的,使用“ git rebase --interactive “和/或” git add --interactive “和朋友(比如” git stash --keep-index “测试隐藏的更改)。

    每次提交一个问题将极大地帮助您使用 git bisect “。

        2
  •  8
  •   Daenyth    15 年前

    这比特定于git的更通用,但是我已经看到许多带有提交消息的项目,比如“bugfix”、“fix foo”或“stuff”。不要这样做,而是使用有意义的提交消息,如“component fiz:fix foo bug[\n\nextra info]”和“whitespace cleanup”。当你以后不可避免地看到你的犯罪记录时,你会感谢自己,而不需要说“我犯下‘东西’的时候到底是什么意思?”

        3
  •  8
  •   ThiefMaster    14 年前

    重新定位已发布或合并的分支(然后重新发布该分支)。这样做会让每个人都讨厌你,因为这会导致可怕的问题,因为你刚刚重写了历史,并要求那些从你的预回扣分支合并的人手动修复你的回扣带来的问题。

    也看到 http://hades.name/blog/2010/03/03/git-your-friend-not-foe-vol-4-rebasing/ 详情。

        4
  •  7
  •   Chris Moschini    15 年前

    不使用 git stash

    场景:你在做一个特写,花了你两天的时间,而你只花了一天的时间就完成了。你已经写了很好的代码,但是还有很多事情要做。你的老板出现了,说“嘿,我现在需要B功能。需要10秒钟。”

    当然-写10秒,损失2天的工作。或者花两个小时去评论并破解你在过去两天里写的所有代码,让一切恢复到工作状态。

    暂存 是来拯救这一天的。只是类型 暂存 在命令行中,在项目的根目录中,所有最近的更改都放在“stash”中,这是一堆更改。现在你又回到了2天前的状态,但你的工作没有丢。你做10秒的更改,签入,然后键入 git stash pop 将更改取回(并将其从堆栈中移除)。

    很明显,如果你有一个糟糕的日子,你可以多次隐藏,虽然显然你做的越多,合并的乐趣就越少。如果你在几个月的工作中积累了很多钱 git stash list 看看他们, 吉特藏酒 git stash drop 选择哪些值得带回去,哪些最好扔掉,然后 git stash clear 如果你只是把糟糕的想法藏起来。

        5
  •  5
  •   Kentzo    8 年前

    作为一个在最近开始越来越多地使用Git的人,我可以说我最坏的习惯是 git commit , git push , GIT提交 , Git推 , GIT提交 , Git推

    换言之,每次提交后都要推,就像我还在使用svn一样。

    在完成了戒掉这个习惯所需的初步训练之后,我的工作流程加载得更快了。git的一个内置优点是本地提交比远程提交快得多。另一个好处是,如果不能进行近乎连续的远程提交,以后可能就不会有什么进展(特别是如果是一个小团队,即使是一个大团队)。

    对我来说,这是SVN中没有真正类比的地方 Jakub Narębski's "big ball of changes" 反模式)。

        6
  •  2
  •   ottodidakt    12 年前

    将一个大型存储库从svn等迁移到一个大型git repo是一个明确的反模式。Git的设计方式,你不能做部分结帐,甚至提交也会很慢。最好对每个组件进行模块化并使用repo。至少,每个团队回购。绝对不是每个组织回购。