git 无法切换分支,因为我无法提交更改

git 无法切换分支,因为我无法提交更改

我有一个在 github 上公开的 git 存储库。

在那里,我有一个不想向公众分享的本地文件,而其他团队成员希望它公开,所以我这样做了git update-index --assume-unchanged (that file)

现在,我想切换到另一个分支。它告诉我该文件上有更改,我必须提交或重置。当我尝试提交时,它说没有更改要提交。当我重置(使用git reset --hard)时,它什么也不做。

我能做些什么?

答案1

相反,你可以存储你的更改,并在以后根据需要进行更改,例如更改分支等,当您需要存储的更改时,你可以取消存储你的更改

检查链接储藏更改完美解释如何存储和取消存储更改

答案2

我今天遇到了同样的事情,我找到了一个有效的解决方案这一页(无法弄清楚作者是谁,因此我无法给予赞扬):

对我有用的解决方案是使用 --skip-worktree。但是,就像上面的一些人一样,即使在我希望保留其更改的文件上设置了 --skip-worktree 标志后,我也很难在标签分支和主分支之间切换而不会出现 git 抱怨。

...

  1. cp <local-only_file> ~/
    • 将包含本地更改的文件复制到文件系统上安全的地方
  2. git checkout <local-only_file>
    • 在工作树中,签出文件以便它与主分支文件匹配
  3. git update-index --skip-worktree -- <local-only_file>
  4. cp ~/<local-only_file> ./
    • 将有问题的文件从安全位置复制回工作树
  5. git diff
    • 不应显示任何更改;如果你推送到主仓库,则<local-only_file>推送中不包含任何更改

完整的解决方案始于git update-index --no-assume-unchanged <filename>执行上述步骤之前。执行完这些步骤后,我便能够切换分支。

相关内容