nop*_*ole 3 git mercurial dvcs
似乎建议我们可以经常提交以跟踪我们编写的代码的中间变化...例如在使用Mercurial或Git时在hginit.com上.
但是,让我们说如果我们在一个项目上工作,我们经常提交文件.现在出于某种原因,经理想要部分功能出去,所以我们需要做推,但我听说在Mercurial或Git上,没有办法推送单个文件或文件夹......被推或没有被推.所以我们要么还原所有那些我们不想推送的文件,要么直到推送之前我们才应该提交 - 在提交之后,我们推送?
Der*_*ger 11
管理它的最佳方法(无论您使用的是Mercurial,Git还是任何其他版本控制系统)都是为了确保您的工作在与这些"功能部分"相对应的分支上完成.如果某一部分工作需要独立于其他工作而被释放的可能性很小,那么它应该从一开始就拥有自己的分支.
这使您可以灵活地推送"功能的一部分",并且更适合于"功能的一部分"和某些其他"功能的一部分"都包含对同一文件的更改的情况.
在这里使用Mercurial或Git的好处是管理这些分支是微不足道的,因此创建和使用它们的成本(即使它们不是必需的)也是最小的.
现在,你不能总是预见到一切.但是,如果你最终陷入了你所描述的局面中,那么很容易就能摆脱困境.假设您在本地有100个更改集(尚未在服务器上),并且您只想推送1个文件的当前内容.创建您正在处理的存储库的克隆回到服务器修订版,复制文件,提交,推送和集成.在Mercurial中,这将类似于以下内容:
$ cd ~/project
$ hg clone http://server/project/trunk trunk-oops
$ cp trunk/shouldve-branched trunk-oops/shouldve-branched
$ cd trunk-oops; hg addrem; hg ci -m "We need to organize better!"; hg push
$ cd ../trunk; hg fetch ../trunk-oops
Run Code Online (Sandbox Code Playgroud)