检查HGINIT.这是关于这个主题的Joel Spolsky(不是他最新的博客文章)的文章/教程.您可能会发现Subversion Re-Education部分特别有趣.
一个简单的例子是git可以自动将合并转换为"快进".例如,假设我有一个看起来像这样的分支:
主:
A ---> B ---> C
我创建了一个基于Master的功能分支,新的提交D和E.
特征:
A --- > B ---> C
\
D ---> E
Run Code Online (Sandbox Code Playgroud)
在svn中,当您将功能分支合并回主服务器时,您必须创建一个全新的提交,在主服务器上应用D和E的更改.所以,它看起来像:
Master:
A ---> B ---> C -----------------> F
Feature: \ /
---> D ---> E -->
Run Code Online (Sandbox Code Playgroud)
在git中,我们可以选择如何将分支功能合并到master中.如果我们做了
git rebase feature
Run Code Online (Sandbox Code Playgroud)
git会自动识别这是一个简单的合并并执行快进合并,这将把新的提交添加到主分支.rebase的结果是:
主:
A ---> B ---> C ---> D ---> E
Run Code Online (Sandbox Code Playgroud)
Master和Feature的头部都指向提交E(换句话说,它们看起来完全相同).快进合并类似于在svn中执行更新时发生的情况.
此外,您可以选择强制git创建合并提交.相反,我们做:
git merge feature
Run Code Online (Sandbox Code Playgroud)
git将创建一个合并提交.合并的结果是:
Master:
A ---> B ---> C -----------------> F
Feature: \ /
---> D ---> E -->
Run Code Online (Sandbox Code Playgroud)
提交F是D和E的组合.
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |