相关疑难解决方法(0)

如何在Git中合并特定的提交

我从GitHub中的一个存储库中分叉了一个分支,并为我提交了一些特定的东西.现在我发现原始存储库有一个很好的功能HEAD.

我想在没有事先提交的情况下合并它.我该怎么办?我知道如何合并所有提交:

git branch -b a-good-feature
git pull repository master
git checkout master
git merge a-good-feature
git commit -a
git push
Run Code Online (Sandbox Code Playgroud)

git merge

964
推荐指数
9
解决办法
69万
查看次数

如何将提交从一个分支复制到另一个分支?

我的主人有两个分支:

  • v2.1 :(版本2)我已经工作了几个月
  • wss:我昨天创建的是为我的主人添加一个特定功能(在制作中)

有没有办法将昨天的提交从wss复制到v2.1?

git branching-and-merging

682
推荐指数
9
解决办法
53万
查看次数

如何和/或为什么在Git中合并比在SVN中更好?

我在一些地方听说分布式版本控制系统闪耀的主要原因之一是比SVN这样的传统工具更好地融合.这实际上是由于两个系统如何工作的固有差异,或者像Git/Mercurial 这样的特定 DVCS实现是否只有比SVN更聪明的合并算法?

svn git version-control merge mercurial

398
推荐指数
7
解决办法
6万
查看次数

为什么Mercurial中的分支和合并比Subversion更容易?

在Subversion或CVS中处理多个合并到分支上只是必须经历的事情之一.在Mercurial(以及可能是任何其他分布式系统)中跟踪分支和合并非常容易,但我不知道为什么.还有其他人知道吗?

我的问题源于这样一个事实:使用Mercurial你可以采用类似于Subversions/CVSs中央存储库的工作实践,一切都会正常工作.您可以在同一分支上执行多个合并,并且您不需要具有提交编号和标记名称的无数废纸.

我知道最新版本的Subversion能够跟踪合并到分支机构,所以你不会有相同程度的麻烦,但它是一个巨大而重大的开发,并且它仍然不能完成开发团队所做的一切喜欢这样做.

它的运作方式必然存在根本区别.

svn git version-control mercurial

92
推荐指数
3
解决办法
1万
查看次数

修剪Git提交/压缩Git历史

我每隔几分钟就会将我的代码检查到一个Git分支中,并且评论最终会变成"Everything broken again again"和其他荒谬.

然后,每隔几分钟/小时/天,我会做一个真正的评论,比如"修正了第22,55号错误".我如何区分这两个概念?我希望能够删除所有我的频繁提交,然后离开严肃的提交.

git branch

66
推荐指数
3
解决办法
1万
查看次数

真的,在Git中合并的一个具体例子比SVN更容易吗?

Stack Overflow问题如何和/或为什么在Git中合并比在SVN中更好?是一个很好的问题,有一些很好的答案.然而,它们都没有显示一个简单的例子,其中Git中的合并比SVN更好.

关于这个问题将被重复关闭的可能性是什么

  1. 具体的合并方案
  2. SVN有多难?
  3. 如何在Git中更容易合并?

几点:

  • 对于什么是DVCS而言,没有任何理念或深刻的解释.这些都很棒,但是我不希望他们的细节混淆了这个(恕我直言)的答案
  • 我现在不关心"历史性的SVN".请将现代G​​it(1.7.5)与现代SVN(1.6.15)进行比较.
  • 请不要重命名 - 我知道Git会检测重命名和移动,而SVN则不会.这很好,但我正在寻找更深层次的东西,以及不涉及重命名或移动的示例.
  • 没有rebase或其他'高级'Git操作.请告诉我合并.

svn git merge

58
推荐指数
3
解决办法
8142
查看次数

Subversion分支在v1.6中重新集成

根据这个老问题,使用SVN 1.5,多次重新集成分支是有问题的,应该避免.

有一些隆隆声,"这是一个已知的问题,应该在SVN 1.6中修复." 那是这样的吗?它固定了吗?我可以多次重新整合吗?

svn merge branch

49
推荐指数
1
解决办法
9649
查看次数

什么使DVCS中的合并变得容易?

我在Joel的软件上读到:

使用分布式版本控制,分布式部分实际上不是最有趣的部分.

有趣的是,这些系统考虑的是变化,而不是版本.

HgInit:

当我们必须合并时,Subversion会尝试查看两个版本 - 我的修改后的代码和修改过的代码 - 它会尝试猜测如何在一个大的邪恶混乱中将它们粉碎在一起.它通常会失败,产生并非真正冲突的"合并冲突"的页面和页面,只是Subversion无法弄清楚我们做了什么的地方.

相比之下,当我们在Mercurial中单独工作时,Mercurial正忙着保留一系列变更集.因此,当我们想要将我们的代码合并在一起时,Mercurial实际上有更多的信息:它知道我们每个人都改变了什么并且可以重新应用这些更改,而不仅仅是查看最终产品并试图猜测如何放置它一起.

通过查看SVN的存储库文件夹,我的印象是Subversion将每个修订版维护为变更集.据我所知,Hg正在使用变更集快照,而Git纯粹使用快照来存储数据.

如果我的假设是正确的,那么必须有其他方法使DVCS中的合并变得容易.那些是什么?

*更新:

  • 我对技术角度更感兴趣,但从非技术角度来看是可以接受的
  • 更正:
    1. Git的概念模型纯粹基于快照.快照可以存储为其他快照的差异,只是差异纯粹用于存储优化.- 拉法洛·道格尔德评论
  • 从非技术角度来看:
    1. 它只是文化:如果合并困难,DVCS根本不会工作,因此DVCS开发人员投入大量时间和精力使合并变得容易.CVCS用户OTOH习惯于糟糕的合并,因此开发人员没有动力让它工作.(为什么当你的用户为你的垃圾付出​​同样的代价时能做些好事?)
      ......
      回顾一下:DVCS的重点是拥有许多分散的存储库并不断地来回合并变化.如果没有良好的合并,DVCS根本就没用.然而,CVCS仍然可以通过糟糕的合并来生存,特别是如果供应商可以调整其用户以避免分支.- JörgWMittag回答
  • 从技术角度来看:
    1. 录制真实DAG的历史确实有帮助!我认为主要区别在于CVCS并不总是将合并记录为与几个父母的变更集,从而丢失了一些信息.- tonfa评论
    2. 因为合并跟踪,以及每个修订都知道其父母的更基本的事实....当每个修订(每次提交),包括合并提交,知道其父项(对于合并提交,意味着拥有/记住多个父项,即合并跟踪),您可以重建图(DAG =直接非循环图)的修订历史.如果您知道修订图,则可以找到要合并的提交的共同祖先.当您的DVCS知道如何找到共同的祖先时,您不需要将其作为参数提供,例如在CVS中.
      .
      请注意,两个(或更多)提交可能有多个共同的祖先.Git利用所谓的"递归"合并策略,它合并了合并基础(共同的祖先),直到你留下一个虚拟/有效的共同祖先(在一些简化中),并且可以做简单的3路合并.- JakubNarębski回答

检查在Git中合并和/或为什么在SVN中的合并更好?

svn git version-control mercurial dvcs

48
推荐指数
4
解决办法
3546
查看次数

是什么让一些版本控制系统更好地融合?

我听说许多分布式VCS(git,mercurial等)在合并方面比Subversion等传统方式更好.这是什么意思?他们做了什么样的事情才能让合并变得更好?这些事情可以在传统的VCS中完成吗?

奖金问题:SVN 1.5的合并跟踪水平是否适合公平竞争?

svn git version-control merge mercurial

29
推荐指数
2
解决办法
3339
查看次数

SVN和Git之间的合并有什么区别?

正如标题所暗示的那样,我很好奇为什么有这么多人吹捧Git作为分支/合并SVN的优秀替代品.我主要是好奇,因为SVN合并很糟糕,我想要一个替代解决方案.

Git如何更好地处理合并?它是如何工作的?

例如,在SVN中,如果我有以下行:

你好,世界!

然后user1将其更改为:

Hello World!1

然后user2将其更改为:

Hello World!12

然后user2提交,然后user1提交,SVN会给你一个冲突.Git可以解决这个简单的问题吗?

svn git

24
推荐指数
2
解决办法
2万
查看次数