如何退出当前分支?

时间:2017-03-04 09:17:10

标签: git version-control

我克隆了一个存储库并创建了一个分支(branch1)。 我在那个分支中有一些变化。 现在我想退出此分支,并从master创建一个新分支。

根据我的理解,我可以使用git branch myBranch创建一个新的分支, 然后通过git checkout myBranch切换到分支。 但不会这样做会在现有分支branch1上创建一个新的分支?

我想退出当前分支(branch1),然后创建一个新分支并输入它(myBranch) 我怎么能这样做?

4 个答案:

答案 0 :(得分:7)

你可以做一个 git checkout master。 然后一个 git checkout -b new_branch

git checkout -b foo之后是git branch foogit checkout foo的缩写形式。

请注意,新分支上仍会存在未提交的更改。如果由于主服务器上的文件在此期间发生了更改而发生任何冲突,您可以使用git stash存储当前更改,签出新分支并在之后执行git stash apply。您需要解决新分支上发生的冲突。

答案 1 :(得分:1)

来自git branch manual文档:

<强>概要

  

git branch [--set-upstream | --track | --no-track] [-l] [-f]&lt; branchname&gt;并[d起点&gt;]

<强>描述

  

命令[...]创建一个名为&lt;的新分支头。 branchname&gt;它指向当前的HEAD,或者&lt;起点&gt;如果给予。
  请注意,这将创建新分支,但不会将工作树切换到它;使用&#34; git checkout&#34;切换到新分支。

因此,git branch myBranch master将从当前master分支头引用的提交开始创建一个新分支。
要处理新创建的分支,请运行git checkout myBranch。 这有点git checkout -b myBranch master的长格式。

有关更详细的说明,请仔细阅读doc git-branchdoc git-checkout

答案 2 :(得分:0)

基本上,要从零枝切换到分支,零更改,您可以执行以下操作

# to discard not committed changes for ever
git reset --hard HEAD
# In case you don't want to discard change but put them aside for now
git stash --all

# to switch to the new branch which is created and placed on the <commit_reference>
git checkout -b <new_branch_name> <commit_reference>

但是当你说退出分支时,你应该进一步解释你的意思,删除它?或者只是切换到另一个分支。 如果要删除它,则需要在前两个命令之后运行它

 git branch -d <branch_you_exited>

答案 3 :(得分:0)

您只能使用一个命令来满足您的要求,即

<强> git checkout -b myBranch commit

该命令的功能是:

1.退出当前分支。

2.从您指定的提交中创建一个新分支myBranch(git branch myBranch)。

3.将myBranch切换为当前分支(git checkout myBranch)。

e.g。

git checkout -b myBranch be42c57,git从be42c57创建一个新的分支myBranch并将HEAD指向它。

git checkout -b myBranch master,git将从master创建一个新的分支myBranch(master上的最新提交id)并将HEAD指向它。