首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最终合并两个源目录的简单/好方法是什么?

最终合并两个源目录的简单/好方法是什么?
EN

Stack Overflow用户
提问于 2009-07-10 21:45:59
回答 5查看 330关注 0票数 0

我有一个源目录,其中包含不同语言和文件的混合。可能是100+总文件。我想要‘分叉’的代码,并创建一个完全不同的版本的源代码。此时,我将得到代码的版本1和版本2。我不会在版本1上做太多的开发。我想要更改文档头和其他一些小的更改。我将在version-2上做很多开发,然后在一两个月后回来,并将version-2与version-1合并(将最新版本-2设置为version-1)。

但是,我不想失去我对版本1所做的任何修改(比如经过几个月的小修正之后)。

以下是我想要得到的一些其他条件。

  1. 我不想像subversion那样集中控制版本(反正这个源代码不是在subversion下)。
  2. 我在想,我可以使用' git‘,然后在版本1和版本2上执行git。在version-1上进行开发,然后在version-2上进行两个月的开发,然后与git进行合并。

我唯一关心的是吉特。答:理想情况下,我希望能在“我同时完成了对版本1和版本2的所有开发”之后创建git存储库,比如在对这两个repos进行了两个月的开发之后。我宁愿只做一次git创建存储库,这样我就可以避免执行一堆增量提交。

我想我可能需要一些git工具,一旦我需要合并?git有什么工具吗。

C.我讨厌.git存储库文件,在对这两个repos进行了所有的开发之后,我将不得不删除所有这些。要清除这些可能很难。

...back到我的编号选项。

  1. 使用diff和修补程序命令。我真的很不喜欢这样做,因为杜夫/补丁似乎是基本的。
  2. 其他的合并工具?
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-10 22:07:43

git只创建一个.git目录。svn是一个分散每个目录中的.svn目录的目录。

在学习有用的git命令(如git merge --squash)时,您的时间会更好。使用git,它可以毫无困难地做你想做的事情。

编辑:

使用git,您可以将其保存在一个地方,随意地来回切换,并尽可能多地提交。

为了减少冲突,您可能希望将Phase1合并到Phase2中(因为您在Phase1中进行了很少的更改)。但这完全取决于你。

下面是我如何用git来做这件事:

代码语言:javascript
复制
cd /path/to/project
git init
git add .
git commit -m "Initial Commit"

此时,您在主分支上有一个称为“初始提交”的提交。现在,让我们创建分支。

代码语言:javascript
复制
git branch Phase1
git branch Phase2

现在,要在Phase2上工作:

代码语言:javascript
复制
git checkout Phase2
... work ...
git add ...
git commit

转到第一阶段,做些工作。

代码语言:javascript
复制
git checkout Phase1
... work ...
git add ...
git commit

切换到第二阶段,做一些更多的工作。

代码语言:javascript
复制
git checkout Phase2
... work ...
git add ...
git commit

在适当的时候,将更改从Phase1拉到Phase2 (或者反过来):

代码语言:javascript
复制
git checkout Phase2
git merge Phase1
... resolve any conflicts and commit if needed ...

重复..。您将能够进行尽可能多的提交、合并和分支,以保持在项目的顶部。

另外,使用git tag ...创建指向给定提交的标记。那样的话,你就可以随时回去,而不必对历史进行梳理。

编辑:

我们从命令行运行git,因此我不太熟悉存在哪些GUI工具。应该不难找到。

当您遇到冲突时,git会将文件标记为冲突(git status),并尽可能地将它们合并。在合并无法完成的地方,它在文件中留下非常清晰的标记:

代码语言:javascript
复制
<<<<<<< yours:sample.txt
Conflict resolution is hard;
We went shopping yesterday.
=======
We go shopping today.
>>>>>>> theirs:sample.txt

因此,您只需删除其中的一个,并编辑其余的适合。

它很少发生,而且很容易清理。

票数 3
EN

Stack Overflow用户

发布于 2009-07-10 21:52:14

虽然我不同意您关于在开发两个月后才创建存储库的立场,但是您可能会发现一个工具对于合并整个目录是有用的,那就是无与伦比。除了比较,让我们来做文件夹比较。

以下是“无与伦比”比较文件夹的截图。

票数 3
EN

Stack Overflow用户

发布于 2009-07-10 22:00:40

您的情况被称为“分支”,这是源代码管理系统的基本概念之一。

使用SVN(或Git、Hg、CVS或.)把工作做好,做好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1112158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档