将git更改提交到多个单独的分支中
自上次提交以来,我对代码库进行了几个独立的、不相关的更改。理想情况下,每一个变更都应该进行到它自己的分支中,但这并没有发生。现在,我想将每个单独的更改移动到一个单独的分支中,以便在将来某个时候发布其中一个,并将其余的更改合并到第二个发布分支中 我看到了一个关于樱桃采摘的答案。然而,所有的更改都尚未提交,我希望以最简单、最直接的方式完成 在最坏的情况下,我可能会分别记录每个更改,分别记录这些更改,然后放弃所有更改,创建单独的分支,并在单独的分支中进行每个更改。有没有一种更简单的方法可以使用一些git命令呢?您可以使用git stash。 - 通常,当您正在处理项目的一部分时,事情处于混乱状态,您希望切换分支一点,以便处理其他事情。问题是,你不想做一个半途而废的工作,只是为了以后能回到这一点。这个问题的答案是git stash命令 隐藏会获取工作目录的脏状态(即修改的跟踪文件和暂存更改),并将其保存在未完成更改的堆栈中,您可以随时重新应用这些更改 你所能做的就是隐藏,继续你的分支并隐藏你想要的更改,然后对于你想要这些更改的每个分支,只需使用将git更改提交到多个单独的分支中,git,branch,Git,Branch,自上次提交以来,我对代码库进行了几个独立的、不相关的更改。理想情况下,每一个变更都应该进行到它自己的分支中,但这并没有发生。现在,我想将每个单独的更改移动到一个单独的分支中,以便在将来某个时候发布其中一个,并将其余的更改合并到第二个发布分支中 我看到了一个关于樱桃采摘的答案。然而,所有的更改都尚未提交,我希望以最简单、最直接的方式完成 在最坏的情况下,我可能会分别记录每个更改,分别记录这些更改,然后放弃所有更改,创建单独的分支,并在单独的分支中进行每个更改。有没有一种更简单的方法可以使用一些gi
git stash apply
。如果使用pop
,则会从隐藏中删除状态
要列出要保留的条目或零件等,请使用
git隐藏列表
-列出您当前拥有的隐藏项。每个存储条目都列出了其名称(例如,存储{0}是最新条目,存储{1}是之前的条目,等等)git stash drop
-从存储项列表中删除单个存储项。如果给定“否”,则删除最新的一个。i、 e.藏匿{0}- 如果您错误地丢弃或清除隐藏条目,则无法通过正常的安全机制恢复它们
.----W
/ /
-----H----I
其中H是头提交,I是记录索引状态的提交,W是记录工作树状态的提交。ok,这样我可以保存自上次提交以来的所有更改,然后将更改应用于其他分支。我正在查看
git stash apply
,但我不清楚如何选择要应用的更改部分。定义要选择的部分?对。。。我想实际创建三个独立的分支,每个分支保存自上次提交以来对代码库所做的单独修复/功能更改。重读上一段,你是说对每个分支应用全部更改,然后手动撤消我不希望在该分支中进行的更改?是的,我通常做的是创建一个测试分支将更改应用于该分支,将其隐藏并应用于其他分支,然后删除测试分支。在您的情况下,将其应用于三个分支,并手动解决和修复问题。确保最后一个应用程序是pop。您可以在这里找到答案:我真的不喜欢使用git stash
。我在这里要做的是创建一个新的分支名称,比如combined
和commit。你现在有了一个可以选择的承诺。返回到您想要处理的分支,运行git cherry pick-n combined
以获得已提交的更改而不提交,然后git reset
以取消未提交的更改;然后使用gitadd-p
只进行部分更改,并提交该部分(然后gitreset--hard
放弃其余部分)。对每个附加分支重复此操作。