标签: branching-and-merging

Git章鱼合并多个分支的顺序

我有一个有趣的事情发生在使用git,想知道是否有人可以解释给我,所以我可以更好地理解.

在进行多个分支(A,B)的合并时,

git merge A B
Run Code Online (Sandbox Code Playgroud)

失败,因为非快进,而

git merge B A
Run Code Online (Sandbox Code Playgroud)

运作良好.那为什么会这样?

git branching-and-merging

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

Git中的合并是否对称?

假设我们有两个分支(BC),它们与共同的祖先A不同.从BC的合并会产生与从CB合并相同的结果吗?

  A
  |
 / \
B   C
Run Code Online (Sandbox Code Playgroud)

澄清 - 我假设任何手动合并冲突解决方案都会在两个方向上发生.但是,任何自动合并都会导致选择相同的代码吗?这就是我所假设的,因为提交日期在两个方向上都是相同的.

为了进一步澄清 - 我知道实际的合并会导致基于方向的彼此的"镜像".我只是询问自动解决的冲突.

git merge git-merge branching-and-merging symmetry

37
推荐指数
2
解决办法
3259
查看次数

取消对另一个分支的支持


我正在尝试使用TFS Power Tools将我的更改解压缩到另一个分支.我正在尝试执行命令

tfpt unshelve /migrate "NuGet Build" "/source:$/ProjectName/Main/Source" "/target:$/ProjectName/Main/Source-NuGet"
Run Code Online (Sandbox Code Playgroud)

但它会返回消息'tfpt : Unable to determine the workspace'.

我正在从映射到此项目的目录中运行命令.而且我试过用tf workspaces /s:http://our-tfs.

有谁知道如何解决这个问题?

tfs tfs-power-tools branching-and-merging

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

是否可以将git-flow模型与Subversion一起使用?

我们使用Subversion,除了像我这样的一些人,在Subversion中几乎没有分支和合并的经验.我的Subversion经验仅限于简单的功能分支,其中合并和树冲突虽然不是很罕见,但并不是很难解决.

鉴于此,我正在帮助管理一个项目,其中我们当前对trunk方法的提交根本不可持续地满足我们的需求.我介绍了功能分支和合并到我的本地化团队,我们取得了一些成功.然而,简单的功能分支仍然无法回答我们的所有问题,例如:

  1. 我们如何为此版本和后续版本并行开发代码?
  2. 什么代码被认为是稳定的?
  3. 什么(开发中)代码将进入下一个版本?
  4. 什么(开发中)代码将进入后续版本?
  5. 我们的测试,验收或生产环境的代码版本是什么?
  6. 我们如何将并发开发活动与已知的稳定版本集成,以减少引入错误和不完整的工作?
  7. 我们如何为发布的代码提供热修复?
  8. 从源头控制中我们如何知道目前正在进行的开发活动?
  9. 我们如何在不中断当前代码库的情况下进行实验或研发而不会受到影响?

似乎 这里定义的git-flow将很长一段时间来回答很多这些问题.我在Mercurial中尝试了这个方法,似乎也可以在那里实现这个方法.可悲的是,此时迁移到DVCS已不在考虑范围之内.

但是,我在Subversion中模仿此方法的简短尝试因许多合并和树冲突而失败.合并选项和边缘案例众多且令人费解.

可以使用Subversion来实现git-flow,如果是,那么痛苦程度是多少?

svn trunk branching-and-merging git-flow

35
推荐指数
1
解决办法
9627
查看次数

如何撤消git flow功能完成?

我正在学习git-flow,我刚刚做了git flow feature finish <feature-name>,它合并了我的功能分支来开发和删除它.

而不是这个,我想将功能分支推送到github,所以我可以在同行评审后合并它.

所以问题是,如何"撤消"这个命令.或者换句话说,如何将我的最后两次提交从开发移动到我的功能分支?

git branching-and-merging git-flow git-branch

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

git - 分支别名?

我正在研究从starteam到git的转换.

目前,在starteam中,我们使用具有特殊名称的"浮动视图".这些浮动视图基本上像别名一样工作.因此,我们可以指定一个特定的别名来结账,我们将获得我们目前正在进行模型测试的分支.

怎么会在git中完成?这基本上是我们的分支机构的组织方式:

这些都是分支机构

master (stable view)
   |  - Branch 2012.05.01
   |          | - Project 1
   |          | - Project 2
   |          | - model [floating view / alias to Branch 2012.05.01]
   |
   |  - Branch 2012.07.11   (these would also have various child views for projects)
   |  - Branch 2012.10.17
Run Code Online (Sandbox Code Playgroud)

(模型测试完成后,分支2012.05.01将合并为主)

在我们的自动脚本(ant)中运行我们的模型部署,我们只需从我们的分支机构中检出"模型".这样我们就不必改变我们的脚本,因为我们改变了我们模型测试的哪个分支,并找出我们进行模型测试的哪个视图就像确定"模型"分支引用哪个分支一样简单.

有什么方法可以在git中做类似的事情吗?

编辑:人们在这里感到困惑.

  1. 我想要一个分支的别名.分支,而不是提交.
  2. "2012.05.01分支"是指拟于2012.05.01发货的分支机构,并不代表2012.05.01时刻
  3. 我想要分支2012.05.01的别名.Branch 2012.05.01是一个集成分支,它经常被修改.但是我不想把它作为Branch 2012.05.01引用,我想把它称为"模型".这样,我可以将别名更改为"Branch 2012.07.11",它将从该分支获取最新代码,而无需更改任何结帐代码脚本.

git version-control feature-branch branching-and-merging

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

Git - 将分支转移到主人

我有一个实际来源的分支,我很长时间没有提交任何提交,目前它已经完全过时了.我想用我的分支内容替换master的内容.一种方法是检查分支和主服务器,删除主服务器的内容并将内容从分支复制到主服务器,然后将结果推送到主服务器.

它有效,但我相信必须有一些git命令才能以更简单的方式完成它.

有谁知道怎么做?

git branching-and-merging git-branch

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

Git merge diff3风格需要解释

我已经合并了2个分支并且出现了冲突,我需要一些提示,它从它结束的地方开始,等等.我用一些伪造的数据替换了代码,以便于阅读和讨论.

<<<<<<< HEAD
    aaaaaa
||||||| merged common ancestors
<<<<<<< Temporary merge branch 1
    bbbbbb
=======
    cccccc
>>>>>>> mybranch
    dddddd
<<<<<<< HEAD
    eeeeee
||||||| merged common ancestors
    ffffff
||||||| merged common ancestors
    gggggg
=======
>>>>>>> Temporary merge branch 2
=======
    hhhhhh
>>>>>>> mybranch
Run Code Online (Sandbox Code Playgroud)

git merge branching-and-merging

31
推荐指数
1
解决办法
8959
查看次数

合并来自不同存储库的Mercurial分支

我试图弄清楚如何将分支从单独的仓库合并到当前.

我有以下内容:

PJT1 - 包含分支默认和foodog

PJT2 - 包含分支默认值

来自PJT2,我做了以下几点:

$ hg fetch -y ../PJT1 -r foodog -m "this is a test"
Run Code Online (Sandbox Code Playgroud)

现在,如果我查看PJT2,我会看到正确的文件和更改.但是,如果我这样做hg branches,我会得到以下内容:

[someone@myhome pjt2]$ hg branches
foodog                         1:c1e14fde816b
default                        0:7b1adb938f71 (inactive)
Run Code Online (Sandbox Code Playgroud)

hg branch揭示以下内容:

[someone@myhome pjt2]$ hg branch
foodog
Run Code Online (Sandbox Code Playgroud)

如何从PJT1的foodog分支机构获取PJT2 分支的内容default

mercurial branching-and-merging

30
推荐指数
1
解决办法
4万
查看次数

如何将一个远程分支覆盖而不是合并到另一个分支?

我有两个分支.分期和Beta.暂存中包含代码(包括文件),我根本不需要.如何让Beta完全覆盖Staging,以便这些文件或代码都不会从Staging合并到Beta.

我看到有些人建议这样做:

git checkout staging
git merge -s ours beta
Run Code Online (Sandbox Code Playgroud)

但我不相信预先存在的文件会是"代码冲突",因此不会被删除.我错了吗?如果我是对的,我将如何做到这一点?

git branching-and-merging

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