Почему git add не работает

Содержание
  1. Невозможно добавить файлы из-за git из-за проблемы с оформлением заказа
  2. 2 ответа
  3. Почему git не распознает, что мой файл был изменен, поэтому git add не работает
  4. не работает git add
  5. 2 ответа 2
  6. Почему не выполняется команда git add. ?
  7. Самые типичные ошибки и вопросы, связанные с Git, и удобные способы их решения
  8. Ошибка в комментарии к коммиту
  9. Как отменить последний коммит?
  10. Удалить ветку на сервере
  11. В чём разница между «git pull» и «git fetch»?
  12. Как отменить «git add» до коммита?
  13. Как разрешать конфликты слияния?
  14. Удалить все локальные файлы и директории, которые не отслеживает Git, из вашей текущей копии
  15. Клонировать все ветки с сервера
  16. Переименовать локальную ветку
  17. Вернуться к любому коммиту
  18. Удалить подмодуль (submodule)
  19. Перезаписать локальные файлы во время git pull
  20. Как добавить пустую директорию в репозиторий?
  21. Экспортирование исходников аналогично «svn export»
  22. Отменить все изменения, кроме тех, что уже добавлены в планируемый коммит
  23. Создать новую ветку на сервере из текущей локальной ветки
  24. Восстановить удалённый файл
  25. Вернуть один конкретный файл в состояние, в котором он был в каком-либо коммите
  26. Сделать так, чтобы Git игнорировал изменения прав файлов
  27. Заставить Git помнить пароль при работе с https

Невозможно добавить файлы из-за git из-за проблемы с оформлением заказа

Мне не удается добавить какие-либо файлы в git, когда я даю команду ‘ git add . ‘ в сеансе Git bash.
Это показывает ошибку:

Я не могу сейчас делать какие-либо операции в Git.

Я перепробовал все команды git checkout , удалил ветки.
Я даже удалил git bash из моей системы.

Пробовал искать коммиты в Git GUI, но там тоже ничего не нашел.
Сделал все это, но безуспешно. Пожалуйста, помогите мне.

Прикрепление изображения шагов, которые я выполнил, и ошибка, которую я получаю

2 ответа

Привет, позвольте мне рассказать вам основные шаги о том, как использовать git, чтобы что-то выдвинуть. Просто проверьте, следите ли вы за всем этим.

Если у вас есть новый проект и у него нет инициализированного git, выполните:

Затем, когда вы делаете какие-либо изменения в папке проекта и сохраняете его, просто возвращайтесь в git и делайте: —

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

Поэтому, если вы хотите создать отдельный файл, скопируйте путь к файлу, показанный в окне bash, и выполните

Или, если вы хотите внести все изменения, затем выполните

Следующим шагом является принятие поэтапных изменений, для этого просто напишите: —

Одним из способов быстрого размещения всех файлов и их фиксации является

Как только вы передали файлы, просто сделайте

Некоторые дополнительные команды, которые полезны:

Надеюсь, это поможет

Попробуйте переместить / удалить папку EyeGuideAuto_test/ , которая кажется проблематичной.

Проверьте, есть ли в этой папке вложенный подкаталог .git/ .

Затем проверьте, если GIT добавить. работает. Если нет, посмотрите, работает ли git add из нескольких файлов (сделайте первый коммит), и продолжайте постепенно.

Источник

Почему git не распознает, что мой файл был изменен, поэтому git add не работает

Я пытаюсь отправить свои файлы в github с помощью bash. Они уже там, и я загружаю более новую версию с новыми строками, кодом и т. Д. Но когда я пытаюсь, git add а потом появляется сообщение git status :

ничего не фиксировать, рабочий каталог чист

И файл, который я использую, был только что изменен.

У меня была проблема, когда однажды я установил для индекса git значение «считать неизменным» в моем файле.

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

Если это не поможет, сброса может быть достаточно для других странных случаев.

Читайте также:  Настроить оптический терминал huawei

На практике я обнаружил, что удалил кешированный файл и заставил его работать:

В git rm —cached средстве для только удалить файл из индекса, и reset говорит мерзавец перезагрузить индекс GIT от последней фиксации.

Проверьте свой .gitignore файл . Вы можете обнаружить, что файл или расширение файла, или путь к файлу, с которым вы пытаетесь работать, совпадает с записью .gitignore , что объясняет, почему этот файл игнорируется (и не распознается как измененный файл).

Это случилось со мной, когда у меня была аналогичная проблема.

Как уже говорилось, файлы, вероятно, были помечены флажком «предположить-без изменений», который в основном сообщает git, что вы не будете изменять файлы, поэтому ему не нужно отслеживать изменения с их помощью. Однако это может повлиять на несколько файлов, и если это большое рабочее пространство, вы можете не захотеть проверять их все по одному. В этом случае вы можете попробовать: git update-index —really-refresh

По сути, это заставит git отслеживать изменения всех файлов, независимо от флагов «предполагать без изменений».

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

Что ж, у нас недостаточно ответов на этот вопрос, поэтому я дам вам несколько предположений:

1) вы сохранили свои изменения, чтобы исправить тип: git stash pop

2) у вас были изменения и вы их зафиксировали, вы должны увидеть свою фиксацию в git log

3) у вас были какие-то git reset —hard изменения, ваши изменения могут быть там в журнале ссылок, введите, git reflog —all а затем проверьте или выберите ссылку, если вы когда-нибудь ее найдете.

4) вы проверяли одно и то же репо несколько раз и ошиблись.

Произошла такая странная вещь. Плагин Eclipse Kepler git автоматически отмечал все мои папки проекта как игнорируемые в папке .gitignore.

Когда я заходил commit в Team меню, все они снова игнорировались. Насколько я могу судить, это произошло потому, что я установил их как производные в родительском проекте. Снятие отметки с них как dervied исправлено. Я никогда раньше не видел этого на Индиго. Надеюсь, это кому-то поможет.

TL; DR; Вы вообще находитесь в правильном репозитории?

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

На самом деле на моей машине, у меня было два отдельных GIT репозиториев repo1 и repo2 настроен в том же корневом каталоге с именем source . Эти два репозитория по сути являются репозиториями двух продуктов, над которыми я работаю в своей компании. Дело в том, что, как правило, структура каталогов исходного кода всех продуктов в моей компании одинакова.

Поэтому, не осознавая, я изменил файл с точно таким же именем, в repo2 котором я должен был изменить repo1 . Таким образом, я просто продолжал работать команду git status на repo1 и продолжал давать то же сообщение

ничего не фиксировать, рабочий каталог чист

в течение получаса. Затем мой коллега заметил это как независимую пару глаз и обратил на это мое внимание, что я был в неправильном, но очень похожем хранилище. В тот момент, когда я переключился на repo1 Git, я начал замечать измененные файлы.

Читайте также:  Не работает регулировка зеркал w203

Источник

не работает git add

Пытаюсь добавить проект в git, создала .gitignore
произвела следующие действия:
git init
git status
git add .
и вот git add . у меня не прошел
пишет
error: ‘site_tests/’ does not have a commit checked out
fatal: adding files failed

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

буду очень благодарна за помощь в моей проблеме

2 ответа 2

У меня была подобная ситуация.

У меня папка в которой лежат куча файлов. И я хочу эту папку проиндексировать. Но вылетела ошибка: error: ‘JS/’ does not have a commit checked out fatal: adding files failed

  1. В папке JS/ у меня была скрытая папка .git/ ( которая отвечает за структуру Git-репозитория ) . Она была лишней и я ее удалил. Отмечу, что у меня была папка .git на уровне проекта (в папке my_project), а папка .git в папке JS была лишней.
  2. Затем согласно данной книги: Pro Git: Основы Git — Запись изменений в репозиторий . Сказано: «Команда git add принимает параметром путь к файлу или каталогу, если это каталог, команда рекурсивно добавляет все файлы из указанного каталога в индекс.».

То есть нужно для каталогов указывать путь: Для меня команда выглядела так: git add C:\Users\User\my_project\JS , и все корректно проиндексировалось.

Источник

Почему не выполняется команда git add. ?

Столкнулся с этим впервые, другой проект нормально залился в репозиторий.
Вот порядок действий:

Захожу в локальную папку проекта
cd

Инициализирую гит
git init

Фоловлю файлы
git add .

И тут он пишет мне:

warning: LF will be replaced by CRLF in *file_name*
The file will have its original line endings in your working directory.

После чего выполняю коммит и он пишет:

В гите новичок. Гуглил, способы решения не подошли.

  • Вопрос задан более трёх лет назад
  • 22364 просмотра

Инициализируем новый репозиторий
git init

Добавляем файлы (все)
git add .

Если файлы не добавляются, то добавляем каждый вручную
git add README.md

Делаем коммит
git commit -m «First commit»

Пушим
git push -u origin master

warning: LF will be replaced by CRLF in *file_name*
The file will have its original line endings in your working directory.

В GitBash (Windows)
Пишет что заменит LF на CRLF (will be):

Но он не делает этого:


Или он изменяет это в слепках файлов проекта?

Связанно это с тем что переносы строк были в Unix-формате, так как дело происходило под Windows.
Простые решения:

Очень просто конвертировать переносы строк в Windows-формат помогает текстовый редактор Notepad++: Правка→EOL конверсия→Преобразовать в WIN-формат.
Подробнее.
Вручную преобразовать символы перевода строки из виндовых в линуксовые, открыть файл, еще раз визуально все проконтролировать и сохранить.
Быстро заменить CRLF на LF можно утилитой dos2unix, входящей в MINGW, с которым поставляется git для win32:

Источник

Самые типичные ошибки и вопросы, связанные с Git, и удобные способы их решения

Если вы хотите получше узнать те части Git, про которые раньше боялись спросить, то этот список для вас. Тут собраны наиболее типичные ситуации и способы их решения как из личного опыта автора, так и собранные по всему Интернету.

Ошибка в комментарии к коммиту

Если коммит ещё не был отправлен на сервер (push), то можно воспользоваться простой командой, позволяющей редактировать текст сообщения к последнему коммиту:

git commit --amend

Как отменить последний коммит?

Можно использовать git reset , вот так:

Читайте также:  Не работает флешка ps2

git reset --hard HEAD

1 означает один коммит до HEAD, т.е. до текущего положения. Стоит заметить, что это «ядерный» способ, который отменит все изменения. Если вам нужно сохранить всё, что вы сделали, но еще не успели закоммитить, используйте:

git reset --soft HEAD

Удалить ветку на сервере

git push origin --delete имя_ветки

В чём разница между «git pull» и «git fetch»?

git pull — это, по сути, git fetch , после которого сразу же следует git merge . git fetch получает изменения с сервера и сохраняет их в refs/remotes/ . Это никак не влияет на локальные ветки и текущие изменения. А git pull вливает все эти изменения в локальную копию.

Как отменить «git add» до коммита?

Вы выполнили git add имя_файла случайно и хотите отменить добавление файла. Если коммит ещё не был сделан, то поможет:

git reset имя_файла

Как разрешать конфликты слияния?

Используйте программу git mergetool , которая предоставляет удобный интерфейс для разрешения конфликтов.

Удалить все локальные файлы и директории, которые не отслеживает Git, из вашей текущей копии

Осторожно! Лучше сделайте перед этим бэкап.

Клонировать все ветки с сервера

Скорее всего, вы это уже сделали, а ветки просто скрыты. Вот команда, чтобы показать их:

Можно использовать git checkout origin/имя_ветки , чтобы посмотреть на нужную ветку. Или git checkout -b имя_ветки origin/имя_ветки , чтобы создать локальную ветку, соответствующую удалённой.

Переименовать локальную ветку

git branch -m oldname newname

Вернуться к любому коммиту

Можно использовать git reset , как показано ранее. Это будет означать, что вы хотите навсегда вернуться к тому состоянию, в котором вы были, а не просто посмотреть на него (для этого надо сделать checkout). Идентификатор коммита должен быть такой, какой прописан в выводе команды git log .

git reset --hard идентификатор_коммита

Ещё раз повторим: команда отменит все текущие изменения, так что убедитесь, что вам это действительно нужно. Или используйте --soft вместо --hard.

Удалить подмодуль (submodule)

Создание подмодулей используется довольно редко, но иногда они всё-таки встречаются. Вот, что вам нужно:

git submodule deinit submodulename
git rm submodulename
git rm --cached submodulename
rm -rf .git/modules/submodulename

Перезаписать локальные файлы во время git pull

Вам снова поможет git reset :

git fetch --all
git reset --hard origin/master

Как добавить пустую директорию в репозиторий?

Никак! Такая возможность просто не поддерживается, т.к. считается, что вам это не нужно. Но есть один трюк. Можно создать файл .gitignore в нужной директории со следующим содержимым:

# Игнорируем всё в этой директории
*
# Кроме самого файла .gitignore
!.gitignore

Экспортирование исходников аналогично «svn export»

Используйте git archive , например, так:

git archive --format zip --output /путь/к/файлу/файл.zip master

Отменить все изменения, кроме тех, что уже добавлены в планируемый коммит

Создать новую ветку на сервере из текущей локальной ветки

git config --global push.default current
git push -u

Восстановить удалённый файл

Сначала нужно найти последний коммит, где файл ещё существует:

git rev-list -n 1 HEAD -- имя_файла

Потом восстановить этот файл:

git checkout найденный_коммит^ -- имя_файла

Вернуть один конкретный файл в состояние, в котором он был в каком-либо коммите

Почти как в прошлом примере, только чуть проще:

git checkout идентификатор_коммита имя_файла

Сделать так, чтобы Git игнорировал изменения прав файлов

git config core.fileMode false

Заставить Git помнить пароль при работе с https

Для запоминания на 15 минут:

git config --global credential.helper cache

Можно настроить и более долгий период:

git config --global credential.helper "cache --timeout=XXXX"

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Источник

Оцените статью