用git清理一根乱七八糟的树枝
我似乎把一个小项目的开发分支搞得面目全非。我现在想要实现的是告诉git以下内容:嘿,git。这是名为X的分支。现在我在名为Y的分支中,它基于X。请查看区别,在一次提交中提交它们,然后更新源 背景:该项目位于gitlab存储库中。有一个叫做开发(development)的开发分支,我正在修改它(分支,比如说,一月开发)。现在,由于不幸的情况可以用最恰当的描述“我一点也不知道我在做什么”,我把该分支的历史搞得一团糟 不久前,我重新确定了我1月份的发展计划,这意味着目前,除了一项来自发展部门的承诺外,其他所有承诺都在我的部门 目前,在发展上重新定位分支的尝试最终重演了1月的整个历史,结果是一团糟,因为我做了很多工作,在概念之间来回穿梭。因此,基本上,我对解决冲突没有信心。我只想保持现状,以“开发”为基础,从理论上讲,这应该很容易,因为在一个文件中只有两行代码,我甚至没有接触过,需要从开发转到我的分支 我知道我能做的,并且我认为它会起作用,将是以下几点:用git清理一根乱七八糟的树枝,git,version-control,gitlab,Git,Version Control,Gitlab,我似乎把一个小项目的开发分支搞得面目全非。我现在想要实现的是告诉git以下内容:嘿,git。这是名为X的分支。现在我在名为Y的分支中,它基于X。请查看区别,在一次提交中提交它们,然后更新源 背景:该项目位于gitlab存储库中。有一个叫做开发(development)的开发分支,我正在修改它(分支,比如说,一月开发)。现在,由于不幸的情况可以用最恰当的描述“我一点也不知道我在做什么”,我把该分支的历史搞得一团糟 不久前,我重新确定了我1月份的发展计划,这意味着目前,除了一项来自发展部门的承诺外,
git commit-a-m“一个新的开始”
git推送
git分支-m一月开发版一月开发版;git push origin一月开发;git推送源-u一月\ u开发;git推送源--删除一月\月2日
git switch Y
–切换到要保存的分支(您已经这样做了,但只是以防万一)git开关-c tmp
–创建一个名为tmp
的新临时分支,以防万一git reset X
–将您的tmp
分支指向与X
相同的提交,同时保留分支Y
的工作树git add.&git commit
–在一次提交中记录X
和Y
之间的所有更改X
和Y
分支保持与以前相同的状态,但是,另外,您有一个名为tmp
的新分支,它本质上是X
+一个提交,包含X
和Y
之间的差异
从您的描述中不清楚您想将什么推到哪里,但是,根据您的需要,您现在可以执行
git branch-fx
或git branch-fy
来相应地更改您的X
或Y
分支,使其与tmp
相同。然后您只需像往常一样切换到它,然后按到您想要的任何地方。完成后,您可以git branch-dtmp
如果您使用的是旧版本的git,请将git-switch
替换为git-checkout
,并将git-switch-c
替换为git-checkout-b
。另外请注意,步骤2和3可以在一个步骤中完成:git-ctmp-X
,但为了简单起见,我想我应该分别描述它们。