创建没有本地提交的新分支

时间:2019-02-04 09:30:47

标签: git github branch

我在当前的分支“ foo”中做了一些更改。

我想从当前分支创建一个名为“ bar”的新分支。

但是新分支不应包含当前分支中的任何更改(在本地系统中已提交的更改)。

示例

$ git clone ssh://svc@somerepo.git
$ cd somerepo
$ ls
test1 test2 test3
$ cat test1 test2 test3
< no output, all these 3 files are empty >
$ echo "testing" >> test1
$ git commit -am "test"

现在我需要从当前分支创建一个名为new-branch的新分支,该分支不应包含任何更改-例如更改“测试”提交(意味着以上3个文本文件均不包含任何内容)并推送到远程。

有什么可以做的吗?

2 个答案:

答案 0 :(得分:1)

  

我想从当前分支创建一个名为“ bar”的新分支。

     

但是新分支不应包含我当前分支中的任何更改。

由于您指定了不希望 local 在foo中提交,但是您想要将其包含在远程分支中,因此不应创建分支{{1 }}从您的本地分支bar,但从远程foo分支:

foo

这将在源存储库中git checkout -b bar origin/foo 的当前状态上创建分支bar,即不包含foo上的本地提交。

答案 1 :(得分:0)

是的。

这是您的git树:

----A---*            <---master

Commit A提交了3个空文件。目前,您已对文件test1进行了更改,但尚未提交。因此,在这种情况下,您只需要使用命令创建一个新分支

git checkout -b "new-branch"

这将创建:

      ---*            <---master
     /
----A                 <--- new-branch

这是基本的git。您通过提交ID进行分支。甚至还可以通过提交ID创建分支/标记/等。选中here

建立新分支后,可以使用

进行推送
git push --set-upstream origin new_branch