如何切换到新分支并恢复更改



在处理有大量代码更改和新文件的分支feature_1时,我预计如果我git checkout -b feature_2,我会看到一个基于master分支的工作空间,这意味着feature_1的所有更改都保存在该分支中,在feature_2下工作时不可见。

git有这个功能吗?如果没有,git中支持它的工作流是什么?

您所期望的描述结果是,而不是您所要求的git。

未提交的更改将保留在工作树中,直到提交(或重置(为止,而与签出的分支无关。


存储您的feature_1更改
如果您想在分支上保留正在进行的(我认为是未完成的(更改,请先提交,然后暂时提交(git commit -am "TEMP - DO NOT MERGE ME"(。当您回到这个分支时,您将能够轻松地撤消这个临时提交(git reset HEAD^(以恢复工作。

(或者,您也可以存储未提交的更改,请参阅此处的git存储文档(


创建新分支
要以master为基础签出新分支,您必须明确(将其作为第二个参数传递(,因此git checkout -b feature_2 master

您必须提供master作为签出的附加参数。CCD_ 11。诀窍是没有一个分支对git有任何特殊的意义/重要性/优先级。因此,如果不提供该附加参数,git将使用当前分支作为新分支的起点。

要更改分支,请键入git checkout branch_name命令。然后使用git merge branch_name_2

在创建新分支之前,您需要养成切换到master/main(或任何"trunk分支"(的习惯。在创建新分支之前,您还需要养成确保该分支是最新的习惯,这样就不会对过时的版本进行更改。如果你在一个团队或其他有多个贡献者的repo中工作,这一点尤为重要。由于git的分布式性质,这不是免费的。

我建议如下顺序:

  1. 检查您现有的分支是否有未完成的东西要提交,如果是,请提交、丢弃或其他什么
  2. git签出主机
  3. git pull
  4. git checkout-b feature2

最新更新