标签: dvcs

Git从另一个存储库拉出来

我有一个名为的存储库Generic,它是一个通用的应用程序.我已将其分叉到一个名为Acme的存储Generic库中,该存储库仅构建在应用程序存储库上,并为其添加了Acme Co品牌.

如果我对核心功能进行了更改Generic,我想Acme使用我对核心功能所做的最新更改来更新存储库Generic.我该怎么办?

据我所知,我基本上试图将上游存储库中所做的更改合并到当前的fork中.

如果它意味着什么,我正在尝试这样做,因为我有一个通用的应用程序,然后我为个人客户构建和品牌(如Acme本例所示).如果有更清洁的方法,请告诉我.

git version-control dvcs repository

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

Windows下的Git:MSYS还是Cygwin?

我计划将我的项目迁移到git,我现在想知道哪个是Windows下最好和/或最稳定的选项.

从我收集的内容我基本上有2.5个选项:

  1. MSYSgit
  2. Cygwin下的git
  3. (又名2.5)来自Cygwin提示的MSYSgit(假设已经安装了Cygwin git).

注意:IMO Cygwin本身就是一个很大的优势,因为你可以访问几乎所有的*nix命令行工具,就像使用MSYSgit bash一样,你只能访问这些工具的一小部分.

鉴于此,您会建议什么选择?

git cygwin dvcs msysgit

80
推荐指数
5
解决办法
6万
查看次数

如何在mercurial中止合并?

我搞砸了合并.我想恢复然后再试一次.
有没有办法在提交之前恢复合并?

hg revert没有做我想做的事情,它只会恢复文件的文本.Mercurial中止了我合并的第二次尝试并抱怨原始合并仍未提交.

有没有办法在hg merge命令之后但在提交之前撤消合并?

version-control merge mercurial dvcs undo

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

集中式和分布式版本控制系统的比较

哪些优点和缺点使用集中式与分布式版本控制系统(DVCS)?您是否遇到过DVCS的任何问题?您是如何防范这些问题的?保持讨论工具不可知和火焰最小化.

对于那些想知道什么是DVCS工具的人,这里列出了最着名的免费/开源DVCS:

version-control comparison dvcs

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

在Mercurial上支持向后合并

如何在没有死亡的情况下扭转合并对极化分支的影响?

这个问题困扰了我好几个月,我终于放弃了.

您有1个存储库,有2个 命名分支.A和B.

A发生的变化将不可避免地发生在B.

B上直接发生的变化绝不会发生在A上.

在这样的配置中,将"B"合并为"A"会在存储库中产生可怕的问题,因为对B的所有更改都出现在A中,就好像它们是在A中制作的一样.

从这种情况中恢复的唯一"正常"方式似乎是"退出"合并,即:

 hg up -r A 
 hg backout -r BadMergeRev --parent BadMergerevBeforeOnA 
Run Code Online (Sandbox Code Playgroud)

这看起来很好,花花公子,直到你决定稍后在正确的方向合并,你最终会发生各种令人讨厌的事情,特别是分支B上删除/注释掉的代码突然变得没有注意或没有注释.

到目前为止,还没有一个可行的解决方案,除了"让它做它的事情,然后解决所有的问题",说实话有点fubar.

这是澄清问题的图像:

[原始图像丢失]

文件C&E(或更改C&E)必须仅出现在分支b上,而不是出现在分支a上.这里的版本A9(分支a,revno 9)是问题的开始.

修订版A10和A11是"退出合并"和"合并退出"阶段.

并且修订版B12是多变的,错误地反复删除了意图不被删除的更改.

这种困境引起了很多挫折和蓝烟,我想结束它.

注意

尝试禁止反向合并可能是一个明显的答案,无论是使用钩子还是使用策略,我发现这种情况相当高并且发生这种情况的可能性很大,即使采取了对策,你仍然必须假设它不可避免地发生,以便你可以解决它.

详细说明

在模型中我使用了Seperate文件.这些使问题听起来很简单.这些只是代表任意变化,可能是一个单独的路线.

此外,为了增加对伤害的侮辱,在分支A上发生了实质性的变化,留下了常见的问题"分支A的变化与分支B的变化发生冲突,分支B刚刚出现(并且退出)看起来像一个变化在分支A而不是"

关于历史重写技巧:

所有这些追溯活动解决方案的问题如下:

  1. 我们有9000次提交.
  2. 因此新鲜克隆需要半小时
  3. 如果某个存储库中甚至存在一个坏的克隆,那么它就有可能与原始存储库重新联系,并再次将其重新打开.
  4. 每个人都已经克隆了这个存储库,现在已经过了几天,正在进行提交.
  5. 一个这样的克隆,碰巧是一个真实的网站,所以"擦掉那个,从头开始"="大nono"

(我承认,上面的许多内容都有些愚蠢,但它们超出了我的控制范围).

唯一可行的解​​决方案是假设人们能够并且将会做错事,并且有一种方法可以"消除"这种错误.

merge mercurial branch dvcs

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

Git从当前检出的主人创建分支?

服务器上有一个git控制文件夹,其中检出主分支,并且修改了一大堆文件但未提交.有没有办法让我将更改提交到一个单独的分支,以便我可以回到一个干净的版本?

即我想有效地撤消所有这些人的变化,但是将它们存储在另一个机会中,所以如果那个人想要他们的改变,他们可以切换到那个分支.

(是的,我知道这不是git的设计工作,但这是我的情况!)任何想法非常感谢.

git version-control dvcs git-branch

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

使用git版本控制系统锁定二进制文件

一年半以来,我一直关注着git社区,希望能够远离SVN.阻碍我的一个特殊问题是无法锁定二进制文件.在过去的一年里,我还没有看到这个问题的发展.我知道锁定文件违反了分布式源代码控制的基本原则,但我没有看到Web开发公司如何在有可能发生二进制文件冲突时利用git跟踪源代码和映像文件更改.

为了实现锁定的效果,必须识别"中央"存储库.无论git的分布式特性如何,大多数公司都将拥有一个软件项目的"中央"存储库.我们应该能够将文件标记为需要从指定地址的管理git存储库进行锁定.也许这很难,因为git跟踪文件内容而不是文件?

你们有没有经验处理应该在修改前锁定的git和二进制文件?

注意:看起来Source Gear的新开源分布式版本控制项目Veracity已将锁定作为其目标之一.

git version-control dvcs binaryfiles

75
推荐指数
8
解决办法
5万
查看次数

版本控制入门

我需要实现版本控制,即使只是我在家里做的开发.我已经读过Subversion在过去几年中的优秀表现,并且正在努力学习这一点,直到我听说Git是即将推出的版本控制系统.

鉴于这种情况,我应该推迟看看哪一个出现在顶部?它们的相对优势是什么?

我注意到Git的一个问题是没有很多全功能的GUI,这对我团队中的许多用户来说很重要.

此外,不介意如何开始使用其中一个或另一个的建议.(教程等)

language-agnostic svn git version-control dvcs

73
推荐指数
9
解决办法
7651
查看次数

我如何在Mercurial上重置--hard HEAD?

我是一个试图使用Mercurial的Git用户.

这是发生了什么:我做了hg backout一个我想要恢复的变更集.这创造了一个新头,所以hg指示我合并(回到"默认",我假设).合并后,它告诉我,我仍然必须承诺.然后我注意到在解决合并中的冲突时我做错了什么,并且我决定要像以前一样拥有所有内容hg backout,也就是说,我希望这个未经注册的合并消失.在Git上,这个未提及的东西将在索引中,我只是做了一个git reset --hard HEAD擦除它,但从我读过的,Mercurial上不存在索引.那我该怎么退出呢?

git merge mercurial dvcs

70
推荐指数
4
解决办法
5万
查看次数

适用于Linux的漂亮且功能丰富的git GUI

我被检查出了rich GUIGitLinux.最近我开始大量使用它并发现即使命令行非常有用,我仍然需要一个GUI供我使用,因为我还不太了解高级功能.

以前在SO上遇到过这个问题,但我还是要再问这个问题,因为那个问题没有我的答案

  • 我已经使用git-colagitk,但他们看上去半生不熟和gitk看起来像我的一些其他工作DE.我在gitGUI中需要的所有功能都不在其中.

  • 我试过giggle,但它对于观看差异更有用

  • 我试过了QGit,但还没有完全完成.

现在让我告诉我如何想要一个foo-Git-GUI看起来像:

  • 你可以看一下Bzr Explorer,它是高度可用的,并且具有许多功能,而不是上面提到的许多GUI

任何人都知道任何Git GUI,看起来像我上面发布的上面的例子?

git user-interface dvcs gitk

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