我想创建新分支“B”。目前,我有一个主分支(本地和远程)和功能分支“A”(本地)。
功能分支(A)已在远程删除。另外,我的本地功能分支中有一些已提交的文件和未暂存的文件。我想去master在不丢失任何更改并创建另一个分支的情况下,先提交该分支,然后提交我的新更改。我该怎么做?
在某些地方您写道您有未跟踪的更改,而在某些地方您则写道您有未暂存的更改。这是两件不同的事情,应该以不同的方式处理。如果您已跟踪但未暂存更改,则应该git stash
在检查新分支之前进行的更改,以及git stash pop
合并后的他们A
进入新的分支。
对于未跟踪的更改,确保它们也被隐藏然后将它们应用到新分支的另一种方法是使用git stash
与旗帜-u
,它还隐藏了未跟踪的更改。这种情况下的流程是:
git branch newBranch master
git stash -u
git checkout newBranch
git merge A
git stash pop
git add && git commit
我相信您想要达到的状态如下:
-
master
分支保持不变
- 特征分支
A
保持不变
- 有新分店了
B
从 master 分支出来,其中包含分支中已提交和未跟踪的更改A
首先,注意:当你使用git checkout
签出不同的分支或提交,或者当您执行操作其他分支的命令时,您之前签出的分支/提交上提交的任何内容都不会丢失,并且您可以随时使用返回到它git checkout
再次。此外,未跟踪的文件不会被修改,除非它们在您正在签出的提交/分支中被跟踪。
现在,我将使用以下命令:
-
git branch newBranch master
创建一个新分支master
branch.
-
git checkout newBranch
签出新创建的分支。请记住,除非在新分支上跟踪未跟踪的文件,否则不会修改它们,从您的描述中我了解到它们不是。还要记住,无论在分支上提交了什么A
会留在那里,不会因切换到另一个分支而丢失。
-
git merge A
合并分支中提交的更改A
到新分行。
-
git add
and git commit
添加未跟踪的更改并将其提交到新分支。
最后,您可以继续在新分支上工作,或者如果您想返回分支A
,你可以执行git checkout A
回去。请注意,由于分支上未跟踪的更改A
现在在分支上进行跟踪B
,如果您再次更改并结账B
您将获得新更改之前的版本A
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)