将Master上的所有新代码移动到Git中的新分支

时间:2013-03-13 05:39:35

标签: git branch

我正在使用Git。我不小心开始在Master上进行所有代码更改。如何创建分支“new_feature”并将所有更改移至“new_feature”分支并从主服务器移出?

4 个答案:

答案 0 :(得分:3)

如果您已经提交了代码,则只需运行git checkout -b new_feature。这将创建新分支并切换到新分支。

如果您尚未提交更改,请运行git checkout -b new_feature,然后提交更改。

如果在创建新分支并提交代码后,您需要还原主分支:

git checkout master              # switch to the master branch
git reset --hard origin/master   # revert master to the current origin/master

请注意,git reset --hard会导致您丢失任何未提交的更改。

答案 1 :(得分:1)

试试这个:

% git commit ...               # save any untracked changes
% git branch <new-branch>      # created a branch, but you're still on master
% git log                      # find the first development commit
% git reset --hard "<commit>^" # set the master branch to before the commit
% git checkout <new-branch>    # recommence your development work
% git checkout master          # return to work prior to development

小心使用reset --hard,因为您可能会失去未跟踪的更改。另外,除了已经被推送到远程的提交之外,不要reset --hard

答案 2 :(得分:1)

如果您尚未提交更改,请切换到新分支:

git checkout -b new_features

这将对新分支进行所有更改,而不会影响master分支。在这里,您可以提交所有更改。

答案 3 :(得分:0)

如果您还没有提交到主分支。执行git diff创建补丁。 创建新分支

git checkout -b new_branch

并使用git apply

应用修补程序

您可以按照此question进行操作,以便更好地了解如何根据未提交/未提交的更改创建修补程序