可以创建一个git存储库,其中分支是来自其他存储库的克隆吗?

时间:2010-11-30 02:42:55

标签: git diff compare

情况如下: 我继承了两台独立的机器,一台用于“开发”,另一台则是生产机器。问题:他们当然不同步。为了给情况带来一些理智,我在每台机器上创建了应用程序目录的独立git存储库。

我现在希望能够比较这些回购,这样我就可以找出它们之间的不同之处。我的想法是创建一个包含两个分支的第三个存储库,一个来自“dev”机器的存储库,另一个来自“prod”机器的存储库。

git可以使用这个或同等的解决方案吗?

感谢。

2 个答案:

答案 0 :(得分:3)

这将使用Git调用的"remotes,",它们是对远程存储库所包含的内容的引用,以便您能够将其拉入您自己的分支,将您的分支推送到远程存储库等等。您可以为每台其他机器设置一个遥控器,然后在它们之间进行差异比较,如果你想做本地工作,你可以从那些遥控器创建一个或多个本地分支。

我建议您的情况是克隆您的开发存储库,它将创建您将要使用的第三个存储库,并自动创建一个指向您的开发存储库的名为origin的远程存储库(这是您将从推送到的默认“上游”位置的常规名称。然后,为prod添加一个遥控器,现在您可以比较它们并在本地使用它们。例如:

git clone me@dev-server:/path/to/repo.git
cd repo
git remote add prod me@prod-server:/path/to/repo.git
git remote update
git diff origin/master prod/master

答案 1 :(得分:0)

最简单的方法是先在dev中提交所有更改。然后使用git branch productiongit checkout production在dev中创建一个名为production的新分支。然后将所有生产文件放到dev上并覆盖(减去生产中的.git文件)。

现在您将所有更改与开发相比较。您可以执行git diff并查看更改和git状态以查看新文件以及哪些文件已更改。提交它然后你可以放慢合并。

我会推荐这种方法而不是整个2回购的东西。当您的开发和生产处于同一个仓库时,它会更容易。