我有一个在 github 上公开的 git 存储库。
在那里,我有一个不想向公众分享的本地文件,而其他团队成员希望它公开,所以我这样做了git update-index --assume-unchanged (that file)
。
现在,我想切换到另一个分支。它告诉我该文件上有更改,我必须提交或重置。当我尝试提交时,它说没有更改要提交。当我重置(使用git reset --hard
)时,它什么也不做。
我能做些什么?
答案1
相反,你可以存储你的更改,并在以后根据需要进行更改,例如更改分支等,当您需要存储的更改时,你可以取消存储你的更改
检查链接储藏更改完美解释如何存储和取消存储更改
答案2
我今天遇到了同样的事情,我找到了一个有效的解决方案这一页(无法弄清楚作者是谁,因此我无法给予赞扬):
对我有用的解决方案是使用 --skip-worktree。但是,就像上面的一些人一样,即使在我希望保留其更改的文件上设置了 --skip-worktree 标志后,我也很难在标签分支和主分支之间切换而不会出现 git 抱怨。
...
cp <local-only_file> ~/
- 将包含本地更改的文件复制到文件系统上安全的地方
git checkout <local-only_file>
- 在工作树中,签出文件以便它与主分支文件匹配
git update-index --skip-worktree -- <local-only_file>
cp ~/<local-only_file> ./
- 将有问题的文件从安全位置复制回工作树
git diff
- 不应显示任何更改;如果你推送到主仓库,则
<local-only_file>
推送中不包含任何更改
完整的解决方案始于git update-index --no-assume-unchanged <filename>
执行上述步骤之前。执行完这些步骤后,我便能够切换分支。