出于某种原因,在克隆存储库并更改分支后,我有一个标记为已修改的jar
文件(未经修改),我似乎无法修改该文件(这会阻止合并分支)
PS D:\src\expm> git status
On branch epic-my-wallet
Your branch is up-to-date with 'origin/feature-01'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Test/Selenium/selenese-runner.jar
no changes added to commit (use "git add" and/or "git commit -a")
我尝试使用checkout命令撤消
PS D:\src\expm> git checkout -- .
git status
输出与之前完全相同的消息。
我尝试使用
从HEAD
重置它
PS D:\src\expm> git checkout -f HEAD
Your branch is up-to-date with 'origin/feature-01'.
请注意,jar文件被标记为由.gitattributes
文件
*.jar filter=lfs diff=lfs merge=lfs -text
下一步不太确定。该文件自几个月前提交以来未被修改过。
修改
我应该补充一点,今天我们尝试使用git rm . -r --cached
重置缓存并删除LFS缓存(物理删除.git/lfs
文件夹)并使用git reset --hard
重新下载文件。
答案 0 :(得分:0)
由于你的git设置要处理行尾,应该是&#39; autocrlf&#39;,git在结帐时修改/破坏jar文件!
你应该添加一个&#39; .gitattributes&#39;存储库中的文件,您可以在其中设置&#39; jar&#39;文件为&#39;二进制&#39;并且git将不再尝试转换行尾。
这是在git存储库中处理行尾的推荐方法,以解决此类问题......
答案 1 :(得分:0)
似乎问题在某种程度上与Git LFS有关。我们将Git(从2.8.4升级到目前的2.9.3)和Git LFS(从本地1.2.1升级到最新的1.3.1)升级。然后删除并重新添加jar文件。
之后我们在新文件夹上做了一个干净的克隆,问题似乎得到了解决。可能是解决问题的git + lfs的升级。