【问题标题】:msysgit Unicode support: I did a mess while migrating from previous Git versionsmsysgit Unicode 支持:从以前的 Git 版本迁移时我搞砸了
【发布时间】:2012-12-20 16:50:03
【问题描述】:

我有一个 repo,路径和文件名中有重音字母。我升级到 msysgit 1.8.0-preview 并继续在其中一个分支上工作(我们称之为recent),根据需要提交和推送。当我意识到由于 v1.7.10 引入的 Unicode 支持而需要迁移我的存储库时,我按照找到的说明进行操作 here

我可以迁移所有“非活动”分支,并且我可以在它们之间结帐没有问题。但是我不能再结帐到recent。 Git 报告:

error: The following untracked working tree file would be overwritten by checkout:

<list of files with accented letters>

Please move or remove them before you can switch branches

根据git status,没有未跟踪的文件。我可以访问recent的唯一方法是将其设置为 BitBucket 上的主分支,然后克隆 repo。当我在该分支上时,git status 报告没有未跟踪的文件,并且所有内容都是最新的。迁移指令在那里不起作用(同样没有未跟踪的文件可以使用),而且,如果我切换到另一个分支,我无法切换回来。

我现在有点迷路了,有没有勇敢的灵魂可以帮助我?我是唯一一个推送到远程仓库的人。谢谢!

【问题讨论】:

    标签: git unicode msysgit


    【解决方案1】:

    这里是交易:你有一些文件,我们称之为 a.txt,它在你的工作目录中,但它不存在于你的主分支中。您可能已将它列在 .gitignore 中,因此当您运行 git status 时它不会出现。 recent 分支中可能有一个名为 a.txt 的文件。当您尝试检查 recent 分支时,git 想要将一个名为 a.txt 的文件放在您的工作目录中,但它不能,因为您恰好在那里有一个。

    解决方案:注意 git 给你的错误信息!将该列表中的文件移动到某个完全不同的目录中,这样它们就不会丢失,然后您应该能够很好地签出recent 分支。顺便说一句,ls 通常是比git status 更可靠的查看文件是否存在的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 2021-01-25
      相关资源
      最近更新 更多