我开始研究一个新特性,在编码了一段时间后,我决定这个特性应该属于自己的分支。

如何将现有未提交的更改移动到新分支并重置当前分支?

我想重置当前分支,同时保留新功能的现有工作。


当前回答

这可能有助于所有使用GIT工具的人

命令

切换分支-它会将您的更改移动到新分支。然后您可以提交更改。

 $ git checkout -b <new-branch>

乌龟GIT

右键单击存储库,然后使用TortoiseGit->切换/签出

源代码树

使用“签出”按钮切换分支。单击分支后,您将看到顶部的“结帐”按钮。来自当前分支的更改将自动应用。然后你就可以提交它们了。

其他回答

这可能有助于所有使用GIT工具的人

命令

切换分支-它会将您的更改移动到新分支。然后您可以提交更改。

 $ git checkout -b <new-branch>

乌龟GIT

右键单击存储库,然后使用TortoiseGit->切换/签出

源代码树

使用“签出”按钮切换分支。单击分支后,您将看到顶部的“结帐”按钮。来自当前分支的更改将自动应用。然后你就可以提交它们了。

对于那些使用Visual Studio Community 2022(以及可能更早的版本)的用户,当您有未提交的更改,然后创建一个新分支时,您将看到如下对话框:

只需选择第一个选项将更改带到“[您的新分行名称]”,然后单击“继续签出”。将创建新分支,您可以继续在那里提交更改。

更新2020/Git 2.23

Git 2.23添加了新的switch子命令,试图消除由于超负荷使用checkout(切换分支、恢复文件、分离HEAD等)而产生的一些混乱

从这个版本的Git开始,将checkout命令替换为:

git switch -c <new-branch>

行为相同且保持不变。


更新2020/Git 2.23之前

使用以下方法:

git checkout -b <new-branch>

这将使当前分支保持原样,创建并签出新分支并保留所有更改。然后,您可以在文件中暂存要提交的更改:

git add <files>

并向您的新分支机构承诺:

git commit -m "<Brief description of this commit>"

工作目录中的更改和索引中暂存的更改尚不属于任何分支。这将更改这些修改将结束的分支。

您不重置原始分支,它保持原样。<old branch>上的最后一次提交仍将保持不变。因此,您签出-b,然后提交。

提交更改的3个步骤

假设您在GitHub上创建了一个名为featurebranch的新分支。

提取

    git pull --all         Pull all remote branches
    git branch -a          List all branches now

检出并切换到要素分支目录。您可以简单地从上面的branch-a命令的输出中复制分支名称

git checkout-b功能分支

验证

接下来使用gitbranch命令查看当前分支。它将显示前面带有*的功能分支

git branch         

承诺

git add .   add all files
git commit -m "Rafactore code or use your message"

在源服务器上进行更新和推送更改

 git pull origin feature-branch
 git push origin feature-branch

或者:

将当前更改保存到临时存储:$git存储基于此存储创建新分支,然后切换到新分支:$git stash branch<new branch>stash@{0}

提示:使用tab键可以减少键入存储名称。