我在当前的分支“ 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个文本文件均不包含任何内容)并推送到远程。
有什么可以做的吗?
答案 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