Я пытаюсь отправить свои файлы в github с помощью bash. Они уже там, и я загружаю более новую версию с новыми строками, кодом и т. Д. Но когда я пытаюсь, git add
а потом появляется сообщение git status
:
О мастере филиала
ничего не фиксировать, рабочий каталог чист
И файл, который я использую, был только что изменен.
git diff
(илиgit status
) не показывает ничего, что объясняет, почему нечего добавить. Итак, вопрос действительно таков: «Почему git не распознает, что мой файл был изменен?»Ответы:
У меня была проблема, когда однажды я установил для индекса git значение «считать неизменным» в моем файле.
Вы можете указать git, чтобы он перестал игнорировать изменения в файле:
Если это не поможет, сброса может быть достаточно для других странных случаев.
На практике я обнаружил, что удалил кешированный файл и заставил его работать:
В
git rm --cached
средстве для только удалить файл из индекса, иreset
говорит мерзавец перезагрузить индекс GIT от последней фиксации.источник
git add -f path/to/the/file
он принудительно добавит файлы для фиксации.git add -f
файл, который находился в этом состоянии «предположить неизменным», и он не сработал - нужно было либо,git update-index
либоgit rm --cached
после него,git reset
чтобы он заработал.git rm --cached -r .
а затемgit reset .
.git update-index --no-skip-worktree path/to/file
вот как я решил свою проблемуПроверьте свой
.gitignore
файл . Вы можете обнаружить, что файл или расширение файла, или путь к файлу, с которым вы пытаетесь работать, совпадает с записью.gitignore
, что объясняет, почему этот файл игнорируется (и не распознается как измененный файл).Это случилось со мной, когда у меня была аналогичная проблема.
источник
lib/
, что заставляет git игнорировать эту папку. С этим нет проблем - по крайней мере, если эта папка не является основной папкой вашего проекта, как то, что случилось со мной.Как уже говорилось, файлы, вероятно, были помечены флажком "предположить-без изменений", который в основном сообщает git, что вы не будете изменять файлы, поэтому ему не нужно отслеживать изменения с их помощью. Однако это может повлиять на несколько файлов, и если это большое рабочее пространство, вы можете не захотеть проверять их все по одному. В этом случае вы можете попробовать: git update-index --really-refresh
согласно документам:
По сути, это заставит git отслеживать изменения всех файлов, независимо от флагов «предполагать без изменений».
источник
git status
говорит, что файлы не меняются, ноgit add .
добавляет два файла иgit update-index --really-refresh
говорит, что эти два нуждаются в обновлении, но, похоже, ничего не делает. Любая идея?git ls-files -v | grep '^[[:lower:]]'
если ничего не помогает, вам следует создать вопрос с более подробной информацией, чтобы мы могли помочь вы.Звучит безумно, но иногда вы не в правильном репо, даже если думаете, что это так. Например, вы могли переместить родительский каталог, но забыли переключить репозиторий в текстовом редакторе. Или наоборот: вы находитесь в правильном репозитории в текстовом редакторе, но не в том репозитории в командной строке. В первой ситуации вы вносите изменения в правильный файл, но это не та папка, которая открыта в вашей командной строке, поэтому на самом деле это не тот файл. Во второй ситуации вы действительно отредактировали правильный файл, но git вашей командной строки не распознает изменение, потому что вы находитесь не в правильном каталоге в командной строке.
источник
Что ж, у нас недостаточно ответов на этот вопрос, поэтому я дам вам несколько предположений:
1) вы сохранили свои изменения, чтобы исправить тип:
git stash pop
2) у вас были изменения и вы их зафиксировали, вы должны увидеть свою фиксацию в
git log
3) у вас были какие-то
git reset --hard
изменения, ваши изменения могут быть там в журнале ссылок, введите,git reflog --all
а затем проверьте или выберите ссылку, если вы когда-нибудь ее найдете.4) вы проверяли одно и то же репо несколько раз и ошиблись.
источник
git commit --amend
что поместит ваши новые изменения в вашу последнюю фиксацию , не делайте этого, если вы уже поделились своим коммитом.Произошла такая странная вещь. Плагин Eclipse Kepler git автоматически отмечал все мои папки проекта как игнорируемые в папке .gitignore.
Когда я заходил
commit
вTeam
меню, все они снова игнорировались. Насколько я могу судить, это произошло потому, что я установил их как производные в родительском проекте. Снятие отметки с них какdervied
исправлено. Я никогда раньше не видел этого на Индиго. Надеюсь, это кому-то поможет.источник
TL; DR; Вы вообще находитесь в правильном репозитории?
Моя история немного забавна, но я подумал, что это может случиться с кем-то, у кого может быть похожий сценарий, поэтому поделитесь ею здесь.
На самом деле на моей машине, у меня было два отдельных GIT репозиториев
repo1
иrepo2
настроен в том же корневом каталоге с именемsource
. Эти два репозитория по сути являются репозиториями двух продуктов, над которыми я работаю в своей компании. Дело в том, что, как правило, структура каталогов исходного кода всех продуктов в моей компании одинакова.Поэтому, не осознавая, я изменил файл с точно таким же именем, в
repo2
котором я должен был изменитьrepo1
. Таким образом, я просто продолжал работать командуgit status
наrepo1
и продолжал давать то же сообщениев течение получаса. Затем мой коллега заметил это как независимую пару глаз и обратил на это мое внимание, что я был в неправильном, но очень похожем хранилище. В тот момент, когда я переключился на
repo1
Git, я начал замечать измененные файлы.Не такой уж и частый случай. Но мало ли!
источник
У нас это происходило в Windows при изменении файлов путем передачи различий с помощью инструмента WinMerge. Очевидно, WinMerge (по крайней мере, так, как он настроен на моем компьютере) иногда не обновляет временные метки файлов, которые он изменяет.
В Windows git status использует, среди прочего, отметку времени файла и изменения размера файла, чтобы определить, изменился ли файл. Таким образом, поскольку отметка времени не обновлялась, оставался только размер файла. К сожалению, рассматриваемый файл был простой версией файла, содержание которого изменилось с 7.1.2 на 7.2.0 . Другими словами, размер файла также не изменился. Другие файлы, которые также были изменены WinMerge и не имели обновленных меток времени, но имели другой размер после того, как изменение было обнаружено git status, просто отлично.
источник
У меня была аналогичная проблема при использовании Sublime Text-3 . После внесения новых изменений в код и его сохранения, когда я попробовал команды git add ./status, я получил ответ «ветка уже обновлена». Я понял, что, несмотря на сохранение обновлений в текстовом редакторе, файл фактически не изменился. Открытие файла в другом редакторе и сохранение изменений у меня сработали.
источник
Вы переместили каталог из-под оболочки? Это может произойти, если вы восстановили свой проект из резервной копии. Чтобы исправить это, просто
cd
войдите и вернитесь:источник
В общем, с этой проблемой сначала убедитесь, что вы редактируете файл, который, как вы думаете, вы редактируете! У меня возникла эта проблема, когда я редактировал транспилированный файл JavaScript вместо исходного файла (транспилированная версия не находилась в системе контроля версий).
источник
Мой клиент Git (Gitg) вызвал у меня эту проблему. Обычные команды, которые я обычно выполнял, не работали. Даже прикоснуться к каждому файлу в проекте не сработало.
Я нашел способ исправить это, но до сих пор не уверен, чем это вызвано. Скопируйте каталог вашего проекта. Недостающие файлы появятся в скопированном каталоге
git status
. Переименование может сделать то же самое.источник
Заглянул в проблему, но это было всего два каталога, и мне неизвестно, что оба эти каталога были настроены как подмодули git. Как это произошло, я понятия не имею, но процесс заключался в том, чтобы следовать некоторым инструкциям по этой ссылке, но НЕ удалять каталог (как он делает в конце), а скорее сделать
git add path/to/dir
источник
Когда вы редактируете файл в Visual Studio, он мгновенно появляется в списке изменений git, даже если файл не сохранен. Итак, все, что вам нужно сделать, это просто сохранить файл вручную (Ctrl + S для текущего отображаемого файла или Ctrl + Shift + S для всех файлов проекта), и git bash заберет их.
источник
.js
файлу, работая с Visual Studio Code. Спасибо.Какой файл вы пытались загрузить? Теперь я трачу почти час на загрузку своей модификации css. Но этот css скомпилирован из файла стиля, поэтому git просто проигнорировал его. Когда я сменил источник стила, все заработало.
Надеюсь, это поможет.
источник
Иногда зависит и от версии git, и если вы забыли это сделать
git add .
.Чтобы проверить изменения в репозитории, всегда используйте
git status
отображение всех неотслеживаемых и измененных файлов. Потому чтоgit diff
показывать только добавленные файлы.источник
Убедитесь , что не создавать символические ссылки (
ln -s source dest
) из внутренней Git Bash для Windows.Он НЕ создает символические ссылки, но делает ГЛУБОКУЮ копию источника в dest
Я испытал то же поведение, что и OP на терминале MINGW64 из Git Bash для Windows (версия 2.16.2), чтобы понять, что мои `` отредактированные '' изменения на самом деле были в исходном каталоге, а мои команды git bash были из глубокой копии, которая осталась без изменений.
источник
У меня такая же проблема. Оказывается, у меня было две копии проекта, и мой терминал находился не в той папке проекта!
источник
Со мной тоже случилось, что я пробовал вышеупомянутые методы, и ничего не помогло. Тогда решением было изменить файл через терминал, а не через графический интерфейс. Я не знаю, почему это сработало, но сработало. После того, как я отредактировал файл через nano с терминала, git распознал его как измененный, и я смог добавить его и зафиксировать.
источник
У меня такая же проблема, VS2015 не распознал мои изменения файлов js, удаление пультов из настроек репозитория, а затем повторное добавление пути удаленного URL-адреса решило мою проблему.
источник
У меня была аналогичная проблема, когда я создавал файл патча на сервере с редактором vi. Кажется, проблема была в интервале. Когда я отправил патч из локальной сети, развертывание было правильным.
источник
У меня была эта проблема. Мой не работал, потому что я помещал свои файлы в папку .git внутри своего проекта.
источник
В моем случае делаю
git reset --hard
удаленные файлы и оставляю пустые папки. Изучив содержимое, я заметил, что каталоги пусты.Однако git игнорирует пустые папки. (Исправление, git игнорирует все каталоги, поскольку он отслеживает содержимое, пустые папки не являются содержимым.)
источник
попробуйте использовать
git add *
тогдаgit commit
источник