使用上次推送的更改启动一个新的git分支
我有两个git分支master和first_puppet。我将第一个puppet推送到github,然后创建了一个pull请求。我现在已经开始开发一个新功能,但是错误地在first_puppet分支工作。自从我将第一个_puppet推到一个新分支后,我想将所有更改移动到一个新分支。我该怎么做?基本上,我的困惑集中在我不应该总是从主分支。如果我不从大师那里分支,会有任何问题。非常感谢你的帮助。使用上次推送的更改启动一个新的git分支,git,github,Git,Github,我有两个git分支master和first_puppet。我将第一个puppet推送到github,然后创建了一个pull请求。我现在已经开始开发一个新功能,但是错误地在first_puppet分支工作。自从我将第一个_puppet推到一个新分支后,我想将所有更改移动到一个新分支。我该怎么做?基本上,我的困惑集中在我不应该总是从主分支。如果我不从大师那里分支,会有任何问题。非常感谢你的帮助。 -Tom假设您在第一个\u puppet分支上,并且原点指向您按下的遥控器: git branch ne
-Tom假设您在
第一个\u puppet
分支上,并且原点
指向您按下的遥控器:
git branch new_branch
git reset --hard origin/first_puppet
git checkout new_branch
这将从当前磁头创建一个新的分支,然后将当前分支重置回您向上游推送的相同参考,然后切换到新分支
新分支仍然包含first\u puppet
分支中的所有内容,以及您的新更改(这不一定是问题!这取决于您希望如何使用分支,请参见下文)。如果您只希望它包含新的更改,您可以创建另一个分支、分支主分支,然后选择新的更改:
[after running the first steps above]
git checkout -b new2 master
git cherry-pick first_puppet..new_branch
或您可以将新分支重设为主分支的基础,并删除不需要的提交:
[after running the first steps above]
git branch --set-upstream-to=master
git rebase -i
[edit the list of commits to only include the new ones]
基本上,我的困惑集中在我不应该总是从主分支
不一定。如果您想根据first\u puppet
分支中的更改进行另一组更改,那么分支是有意义的
如果您想进行一些独立的更改,这些更改可能会形成一个单独的请求,那么从master开始可能更有意义
如果我不从大师那里分支,会有任何问题
这取决于你考虑的问题!
您将拥有一个包含两组更改的分支。这可能是好事,也可能是个问题。从根本上说,您并没有理由总是从master分支,但作为一种惯例或特定的工作流,它可能对您有意义