gpt4 book ai didi

git - 在不接触工作树的情况下切换分支?

转载 作者:IT王子 更新时间:2023-10-29 00:50:38 24 4
gpt4 key购买 nike

我目前在 debug 分支上,想切换到 master 分支,而不修改工作树(保持它在 debug 分支中的状态),这样我就可以将一些更改提交到 master分支机构。

有办法吗?

最佳答案

您可以执行以下操作:

git checkout --detach
git reset --soft master
git checkout master

解释:

如果你在 debug 分支上并且要执行 git reset --soft master 你会保持你的工作树和索引不变并移动到提交 master 指向。问题是,debug 也将重置为此提交。因此,您在 debug 上的提交“丢失”了(好吧,不是真的,但它们不再可以直接访问)并且您仍在 debug 分支上。

为了防止 git reset 移动 debug 但仍将你的 HEAD 设置为 master 提交,你首先执行 git checkout --detachHEAD 直接指向您当前的提交(参见 man git-checkout,“DETACHED HEAD”部分)。然后你可以在不触及 debug 分支的情况下进行重置。

现在 HEAD 直接指向 master 指向的提交,即它仍然是分离的。您可以简单地 git checkout master 附加到 master 并准备好在 master 分支上提交。

请注意,git checkout(默认情况下且未传递路径时)仅更新在“源”和“目标”提交之间更改的文件以及对工作中文件的本地修改树被保留。由于在这种情况下两次提交都是相同的,因此不会触及工作目录中的任何文件。

关于git - 在不接触工作树的情况下切换分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6070179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com