当您在Git中工作时,有时会发现自己在错误的分支上进行了一些更改,或者决定您的修改应该在新的分支上进行,以保持主分支的清洁或为了其他原因。幸运的是,Git提供了灵活性,允许您将尚未提交的更改移至新的分支。以下是步骤:
-
检查当前更改: 在移动更改之前,您应该查看当前工作目录和暂存区的状态。可以使用以下命令:
shellgit status这将显示当前更改的状态,无论是已经暂存(staged)还是尚未暂存(unstaged)。
-
创建并切换到新分支: 如果您已经暂存了更改,首先应该将这些更改取消暂存(如果您希望这些更改也被移动到新分支)。然后,创建并切换到新分支,可以使用以下命令:
shellgit checkout -b new-branch-name这个命令会创建一个名为
new-branch-name的新分支,并切换到那个分支。 -
添加和提交更改: 现在您已经在新分支上,可以添加并提交您的更改。使用以下命令来添加所有更改到暂存区:
shellgit add .或者,如果您想要添加特定文件,可以使用:
shellgit add <file-path>接下来,将更改提交到您的新分支:
shellgit commit -m "Commit message explaining the changes" -
(可选)保持主分支清洁: 如果您刚才从主分支(比如说
main或master)上创建了新分支,并且不想让这些更改出现在主分支上,您可以切回主分支并撤消这些更改。首先,切换回主分支:shellgit checkout main然后,使用以下命令来撤销未提交的更改:
shellgit reset --hard这将重置主分支,将其恢复到最后一次提交的状态,丢弃所有未提交的更改。请注意,这是一个危险的操作,因为它会丢弃所有未提交的更改。在使用
git reset --hard之前,请确保您不需要这些未提交的更改。
这就是将未提交的工作移动到新分支的基本过程。 让我们看一个具体的例子:
假设您正在主分支 main 上工作,并且进行了一些更改,现在您想要将这些更改移到一个新的分支 feature-x。
- 检查更改:
sh
git status - 创建并切换到新分支
feature-x:shgit checkout -b feature-x - 添加所有更改并提交它们到新分支:
sh
git add . git commit -m "Start working on feature X" - 如果需要,切换回
main分支并撤销更改:shgit checkout main git reset --hard
现在,新分支 feature-x 包含了之前未提交的工作,而 main 分支保持不变。