当您在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
分支保持不变。