English 中文(简体)
将主头移动到分支
原标题:Moving master head to a branch

我有几个特性分支和一个母分支。 特性2 已经完成。 通常我会重新基准( 与远程 SVN 重新po 一起工作, 希望保留历史, 所以不定期合并) 和 ff- merge 。 但是, 由于主机自我分行以来没有变化, 我想将主头( 在 < code> E < / code > 上) 移动到 < code> G 。 使用 < code> git 分支 - f master G < / code > 并不导致任何可见的变化, 我认为这是因为 < code> G < / code > 在另一个分支上 。

在这里使用 git update- ref -f master G 是否安全? 我是否应该坚持重设基点/ff-merge? 更好吗?

feature1      C-D  
             /
master    A-B-E            
                                     
feature2        F-G  

谢谢

最佳回答

将 G 定期合并为主控器, 将可操作, 无需重定基准 :

    feature1      C-D  
                 /
    master    A-B-E            
                                         
    feature2        F-G

git checkout master
git merge feature2

    feature1              C-D  
                         /
    master, feature2  A-B-E-F-G
问题回答

您不必合并分支, 重设就足够了 。 假设主机被检查 :

git reset --hard feature2

不需要合并 - 只需重命名分支。 由于您不关心特性2( 已经完成) 或现有主机( E), 您只需要以下内容 。

git branch -d master
git branch -m feature2 master

简单更简单吗?

记住其中涉及两个关键概念:

  1. The Git commit graph, and
  2. The Git references

当您进行合并( 包括各种口味的合并, 包括重基准) 时, 您正在修改承诺图形。 更改涉及添加节点、 添加链接或移动链接。 引用( 包括分支和标记) 只指向承诺, 因而更改引用只会改变要承诺的提示结构, 而不是图形的结构 。

因此,就你而言,不需要改变结构,只是更改参考。

一行版本是:

git branch -f master feature2

保持特性2分支的周围(与前两班轴的特性2不同) 。

更新参考文件是安全的。 分支头只不过是一个小小“ 读我! ” 标记挂在一项承诺上。 纯粹根据惯例, 它会把它捡起来, 有时挂在不同的承诺上 。

使用 git 分支 - f master G 不导致任何可见的更改

git log -- decorate -- oneline -- all 说什么? git 显示主机 ?

如果您在母版分支中检查过, 最好使用 git 合并 -- no- ff spat2 执行特性 2 的不快速前向合并, 将特性 2 合并为母版, 从而执行非快速前向合并 。 您最后应该有以下内容

feature1      C-D  
             /
master    A-B-E-----H          
                  /                   
feature2        F-G 




相关问题
Tracking Versions, Builds, Revisions, with TortiseSVN

I am the sole developer on a project and have been using tortoiseSVN for quite a while. Now Id like to start getting version information working correctly in the project I.E. show Major Version, Minor ...

Tips on upgrading CVS to git/hg?

We still use CVS, I use git and hg for my personal use though I m still a novice at both, but I realize they re much more modern and better, faster, distributed, etc. It s just everyone is so ...

How to handle different csproj [closed]

I am working in a team of five. We are working on a C# application with five csprojects. The problem is that for each csproject, each of my colleagues has their own ideas on how to reference a DLL; ...

Changing username in SVN+SSH URI on the fly in working copy

I am using SVN+SSH to check out a working copy of repository from an SVN server on which all developers are members of a developer group and have full read/write permissions on the repository ...

How to search for file in subversion server?

Is there a way to search for a file in a subversion repository? Something similar to Unix find command, with which I can find the location of a file in a repository. I know there is svn list, but ...