我开始在我的主分支上工作,以为我的任务会很简单。过了一段时间,我意识到这需要更多的工作,我想在一个新的分公司做所有这些工作。

我如何创建一个新的分支,并采取所有这些变化与我没有脏主人?


当前回答

因为你还没有提交任何文件,你可以将所有的更改保存到存储中,创建并切换到一个新的分支,然后将这些更改弹出到你的工作树中:

git stash  # save local modifications to new stash
git checkout -b topic/newbranch
git stash pop  # apply stash and remove it from the stash list

其他回答

我发现这里的大多数答案都过时了。没有必要使用新的switch命令进行隐藏和弹出操作。

git switch -c new_branch -m

将创建一个名为“new_branch”的新分支,切换到它,并将所有未提交的更改作为修改文件带来。然后,您可以继续进行更改或将它们提交给新的分支等等。

就像在这个问题中所说的:Git:从master: stash上的未分期/未提交的更改创建一个分支是不必要的。

只使用:

Git checkout -b feature/newbranch

任何未完成的工作都将移交给新的部门。

如果您尝试推送,您将收到以下消息

致命:当前分支特性/新分支没有上游分支。来 推送当前分支,并将远程设置为上游,使用 Git push——set-upstream origin feature/newbranch

只需按照建议远程创建分支:

Git push——set-upstream origin feature/newbranch

遵循以下步骤:

创建一个新分支: Git分支新增特性 签出新分支:(这不会重置你的工作) Git签出新特性 现在在这个新分支上投入你的工作: Git提交-s

使用上述步骤将使您原来的分支保持干净 你不需要做任何'git reset -hard'。

P.S. -s参数用于——signoff

向新分支添加新更改并推送到远程:

git branch branch/name
git checkout branch/name
git push origin branch/name

我经常忘记添加原始部分来推送,并感到困惑,为什么我在bitbucket中看不到新的分支/提交

因为你还没有提交任何文件,你可以将所有的更改保存到存储中,创建并切换到一个新的分支,然后将这些更改弹出到你的工作树中:

git stash  # save local modifications to new stash
git checkout -b topic/newbranch
git stash pop  # apply stash and remove it from the stash list