我在branchX 工作,它有十几个我不想提交的配置文件。所以我将所有配置文件标记为 --skip-worktree。现在我想换成branchY。我该怎么做?
I tried
git checkout branchY
它说
Please commit your changes or stash them before you switch branches.
所以我尝试用
git stash save
但它说
No local changes to save
This is 很烦人。显然唯一的解决方案是
- use
git ls-files -v
获取所有跳过工作树文件的列表
- 对于每个文件,删除跳过工作树
git stash save
git checkout branchY
git stash pop
- 手动解决任何冲突
--theirs
- 对于每个文件,再次添加skip-worktree标志
有更容易的方法吗?
我在用着git 1.9.1
并且可以通过树中已有的文件中的更改来切换分支,然后使用git update-index --skip-worktree filename
.
该文件在切换后没有更改(即它没有更改为我切换到的分支中的版本)。
(我本以为这是自 1.7.7 以来的行为,因为它的发行说明指出* "git stash" learned an "--include-untracked option".
但 1.7.7 在你问问题之前就已经发布了,所以我不知道。)
请注意,当尝试切换到没有该文件的分支时,git 仍然会抱怨
错误:您对以下文件的本地更改将被签出覆盖:
f1配置
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)