在处理有大量代码更改和新文件的分支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的分布式性质,这不是免费的。
我建议如下顺序:
- 检查您现有的分支是否有未完成的东西要提交,如果是,请提交、丢弃或其他什么
- git签出主机
- git pull
- git checkout-b feature2