Файлы, отображаемые как измененные сразу после клона Git - PullRequest
216 голосов
/ 15 февраля 2011

У меня сейчас проблема с репозиторием, и хотя мой Git-fu обычно хорош, я не могу решить эту проблему.

Когда я клонирую этот репозиторий, тогда cd в хранилище, git status показывает несколько файлов, которые были изменены.Примечание. Я не открыл хранилище ни в каком редакторе или в любом другом месте.

Я пытался следовать этому руководству: http://help.github.com/dealing-with-lineendings/,, но это не помогло с моей проблемой.

Я пытался git checkout -- . много раз, но, похоже, ничего не делал.

Я на Mac, и в самом хранилище нет подмодулей.

Файловая система"Журналированная файловая система HFS +" на Mac и не чувствительна к регистру.Файлы состоят из одной строки и около 79 КБ каждый (да, вы правильно поняли), поэтому просмотр git diff не особенно полезен.Я слышал о выполнении git config --global core.trustctime false, которое может помочь, которое я попробую, когда вернусь к компьютеру с репозиторием.

Я изменил детали файловой системы с фактами!И я попробовал трюк git config --global core.trustctime false, который не очень хорошо работал.

Ответы [ 17 ]

1 голос
/ 21 ноября 2018

Для новых версий macOS это может быть вызвано функцией безопасности ОС.

В репозитории, над которым я работал, был двоичный файл с * .app в качестве типа файла.

Это были только некоторые сериализованные данные, но macOS рассматривает все файлы * .app как приложение, и поскольку этот файл не был загружен пользователем, система сочла его небезопасным и добавила атрибут файла com.apple.quarantine, который обеспечиваетфайл не может быть выполнен.

Но установка этого атрибута в файле также приводила к изменению файла, и поэтому он отображался в наборе изменений Git без возможности его возврата.

Вы можете проверитьесли у вас возникла та же проблема, запустив $ xattr file.app.

Решение довольно простое, если вам не нужно работать с файлом.Просто добавьте *.app binary к вашему .gitattributes.

1 голос
/ 24 октября 2017

Редактировать файл с именем .git/config:

sudo gedit .git/config

Или:

sudo vim .git/config

Содержание

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true

[remote "origin"]
    url = kharadepramod@bitbucket.org:DigitalPlumbing/unicorn-magento.git
    fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]
    remote = origin
    merge = refs/heads/master

[branch "productapproval"]
    remote = origin
    merge = refs/heads/productapproval

Изменить filemode=true на filemode = false.

1 голос
/ 13 декабря 2013

У меня тоже была такая же проблема.В моем случае я клонировал репозиторий, и некоторые файлы сразу исчезли.

Это было вызвано тем, что путь к файлу и имя файла слишком длинное для Windows.Чтобы решить эту проблему, клонируйте репозиторий как можно ближе к корню жесткого диска, чтобы уменьшить длину пути к файлу.Например, клонируйте его в C:\A\GitRepo вместо C:\Users Documents\yyy\Desktop\GitRepo.

0 голосов
/ 08 апреля 2019

На случай, если это кому-то поможет, может быть еще одна причина этой проблемы: разные версии Git. Я использовал установленную по умолчанию версию Git на коробке с Ubuntu 18.04 (Bionic Beaver), и все работало нормально, но при попытке клонировать хранилище с помощью Git на Ubuntu 16.04 некоторые файлы показывались как измененные.

Ни один из других ответов здесь не устранил мою проблему, но обновление версий Git для соответствия в обеих системах решило проблему.

0 голосов
/ 10 августа 2018

Я пытался сделать интерактивную перебазировку, но он утверждал, что были некоторые измененные файлы, поэтому он не позволил мне сделать это прямо сейчас.Я пытался все , чтобы вернуться в чистый репозиторий, но ничего не получалось.Ни один из других ответов не помог.Но это наконец-то сработало ...

git rm -rf the-folder-with-modified-stuff
git ci -m 'WAT'

Бум!Чистый репозиторий.Задача решена.Затем мне просто пришлось отбросить последний коммит, когда я сделал rebase -i, и, наконец, все снова стало чистым.Bizarre!

0 голосов
/ 11 сентября 2015

Я обнаружил, что Git рассматривает мои файлы (в нашем случае .psd) как текст. Установка его в двоичный тип в .gitattributes решила это.

*.psd binary
0 голосов
/ 22 апреля 2015

Я скопировал свой локальный репозиторий в другую папку, и появилась куча измененных файлов. Мой обходной путь был: Я спрятал измененные файлы и удалил тайник . Хранилище стало чистым.

...