ott*_*akt 25 git version-control anti-patterns
作为一个Git新手,我意识到我一直在使用它,好像它是Subversion.例如,总是在master上工作,而不是在拉动更改之前在本地提交.这通常会导致可避免的手动合并情况.使用Git的其他常见反模式有哪些?
Jak*_*ski 20
当您编写提交消息,并且您不知道在单行更改摘要中放入什么时,它可能意味着您在一次提交中放置了太多独立的内容.最好将提交拆分为较小的,使用" git rebase --interactive"和/或" git add --interactive"和朋友(比如" git stash --keep-index"以测试存储的更改).
在尝试使用" git bisect" 查找错误时,每次提交单个问题将极大地帮助.
这比git特定的更通用,但是我看到许多项目都有提交消息,如"bugfix"或"fix foo"或"stuff".不要这样做,而是使用有意义的提交消息,如"组件fiz:Fix foo bug [\n \nExtra info]"和"Whitespace cleanup".当你不可避免地看到你的提交历史时,你会感谢你自己,并且不需要说"当我犯下'东西'时,我到底意味着什么?"
重新绑定已发布或合并的分支(然后重新发布该分支).这样做会让每个人都讨厌你,因为它会导致糟糕的问题,因为你刚刚重写了历史记录,并要求那些从你的rebase之前的分支合并的人手动修复你的rebase引入的问题.
有关详细信息,另请参阅http://hades.name/blog/2010/03/03/git-your-friend-not-foe-vol-4-rebasing/.
不使用 git stash
场景:你正在处理功能A.它花了你大约2天,你完成它大约需要一天.你已经编写了很好的代码,但还有更多工作要做.你的老板出现并说"嘿,我现在需要功能B.应该需要10秒钟."
当然 - 写10秒钟,失去2天的工作.或者2小时试图评论并破解你过去2天写的所有代码,以使一切恢复到工作状态.
git stash在这里拯救这一天.只需git stash在命令行中输入项目的根目录,并且所有最近的更改都会进入"存储",这是一堆更改.现在你回到了2天前的位置,但你的工作并没有丢失.您进行10秒更改,检入,然后键入git stash pop以获取更改(并将其从堆栈中删除).
很明显,如果你有一个可怕的日子你可以多次藏匿,虽然你这样做的次数越多,当你最终git stash pop all all时,合并的可能性就越小.如果你在几个月的工作中积累了大量的藏品,你必须git stash list要仔细检查,git stash pop并git stash drop挑选哪些值得带回来,哪些最好只是折腾,git stash clear如果你只是隐藏可怕的想法.
正如有人谁最近开始使用Git的越来越多,我可以说我最糟糕的习惯,在做之前使用SVN了不少git commit,git push,git commit,git push,git commit,git push...
换句话说,总是在每次提交后推送,就像我还在使用SVN一样.
经过初步培训以消除这种习惯后,我的工作流程加载速度更快.Git的内置优势之一是本地提交比远程提交快得多.另一个好处是,未能进行近乎持续的远程提交可能不会在以后关闭你的腿(特别是如果它是一个小团队,即使它是一个大团队).
对我来说,这是SVN中没有真正类比的地方(没有引用JakubNarębski的"变革大球"反模式).
| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |