Мерзавец добавить. -> все еще "нечего коммитить" с новыми файлами
Я борюсь с Git, я не могу добавить свои файлы. Я побежал ls
чтобы показать, что файлы находятся в текущем каталоге, затем запустил git add .
затем git status
который показал "нечего совершать".
JJ-Computer:first_app JJ$ git init
Reinitialized existing Git repository in /Users/JJ/rails_projects/first_app/.git/
JJ-Computer:first_app JJ$ ls
Diary.txt README.rdoc config.ru log tmp
Gemfile Rakefile db public vendor
Gemfile.lock app doc script
README config lib test
JJ-Computer:first_app JJ$ git add .
JJ-Computer:first_app Jenn$ git status
# On branch master
nothing to commit (working directory clean)
JJ-Computer:first_app JJ$
16 ответов
Ваши команды выглядят правильно (я делал это много раз).
Первая попытка
git add --all
а потом попробуй git status
, Я не думаю, что это решит, но стоит попробовать дальше.
Затем попробуйте просмотреть ваш файл.gitignore, если он у вас есть (на верхнем уровне, где вы сделали git init
).
cat .gitignore
Удалите все списки, которые приводят к игнорированию ваших файлов. Например, есть ли запись с просто *
?
Следующая попытка:
git add --force
а потом попробуй git status
,
Если ничего из этого не работает, я замечаю, что ваш вывод из git init
говорит "переинициализирован", а не "инициализирован", так что что-то, возможно, испортилось. Если вы только что инициализировали его и не против потерять историю, начните сначала с удаления.git dir:
rm -rf .git
А затем повторите ваши те же команды выше. Если это не сработает, потребуется дополнительная информация о вашей настройке. Например, у вас может быть глобальный файл.gitignore: ~/.gitignore_global
что нужно отредактировать (или удалить, если вы этого не хотите).
Поскольку я сталкивался с подобной проблемой несколько раз, я просто хотел бы добавить, что вам следует дважды проверить, что вы пытаетесь добавить и в данный момент находитесь в корневой папке вашего проекта.
В случае, если кто-то столкнется с этим, еще одна причина, по которой git не добавляет каталог, заключается в том, что .git
каталог в этом каталоге.
В этом случае git ожидает, что вы будете рассматривать это как субмодуль. В противном случае просто удалите это .git
(в каталоге, а не в корне) и повторите попытку.
Удобная команда:
find . -name '.git' -type d
У меня была аналогичная проблема, и я понял, что делаю
git add .
из подкаталога main.
Убедитесь, что вы находитесь в корне вашего проекта, или вы можете использовать
git add --all
из любого подкаталога, и все будет в порядке.
В моем случае это вызвано вложением каталога git в текущий каталог git:
A1.java
B1.java
.git
someDirectory
C1.java
.git
cd someDirectoy
rm .git -rf
В моем случае я решил эту проблему с помощью тайника и сразу же применил тайник:
git stash
git stash apply
Эта последовательность оставит репо точно так же, как это было раньше. После этого делаем git add [file]
работал правильно.
(Использование git версии 1.7.12.4 под suse linux)
У меня только что была такая ситуация. В моем случае это была проблема с файлом (нижний / верхний регистр). Дело в том, что у меня былNuGet.config
файл был изменен, и после этого Visual Studio по какой-то причине заново создала этот файл, но с именем NuGet.Config
(обратите внимание, не .config
, но .Config
).
Самым простым решением, которое я нашел, было удаление (фактически, перемещение) этого файла в другое место и фиксация вообще без этого файла. Вgit status
сообщение было
[deleted] NuGet.config
[deleted] NuGet.Config
Затем я скопировал свой файл обратно в каталог репо и зафиксировал, все работало как должно быть в самом начале.
Короче говоря, в моем случае это была коллизия стратегии именования файлов. В Windows символы верхнего / нижнего регистра в именах файлов не имеют значения, но для исходных файлов UNIXgit
команда делать.
По какой-то причине Git работал хорошо для меня, когда у меня довольно долго были репозитории в каталогах в Google Drive File Stream. Вчера я столкнулся с той же проблемой. git add .
не сообщит ничего, чтобы совершить, но git add <some explicit filename>
работал без проблем. Я переместил каталог на свой локальный жесткий диск (вне потока файлов Google Drive) и git add .
собрал все мои ожидающие изменения. Обратите внимание, что, когда каталог все еще находился в потоке файлов на Google Диске, установка его в положение "Доступен в автономном режиме" не имела никакого эффекта.
Я нашел совершенно другую причину, по которой это происходит, и это нечто особенное. Если вы не в Windows, это, вероятно, вас не коснется. Если вы видите свой файл в неустановленных изменениях,.gitignore никогда не будет вашей проблемой. Проверьте что-нибудь очень внимательно. Есть ли в вашем файле поэтапные и неэтапные изменения?
git status
Staged changes
modified: source/abc.Ui.Tests
modified: source/def.Ui.Tests/def.UI.Tests.csproj
Unstaged changes
modified: source/abc.UI.Tests
modified: source/def.UI.Tests/def.UI.Tests.csproj
Увидеть разницу? Трудно заметить. Windows не заботится о капитализации, но git bash заботится.
git rm -r source/abc.Ui.Tests
git reset source/abc.UI.Tests
git commit -m "Fixing capitalization"
git checkout source/abc.UI.Tests
git status
working clean tree
Дополнение к Quux00 .gitignore
ответ, я обнаружил, что мой каталог не отслеживался из-за временного каталога 'build' моего менеджера сборки (Maven). Maven добавил "построить" к .gitignore
при сборке моей программы и, таким образом, мой собственный каталог (по совпадению с именем "build") не отслеживался. Это было решено путем переименования моего каталога "build".
У меня была эта проблема на окнах. Ни одно из существующих решений вообще не указывало на что-то не так с моей стороны. Я переименовал файлы, поставил, затем переименовал обратно в их прежнее имя файла, затем поставил, и все было хорошо.
Моя проблема решается:
The git pull --rebase
Команда полезна в ситуациях, когда ваша локальная ветка является фиксацией позади удаленной ветки.
git pull --rebase origin main
git push -u origin main
В моей другой попытке я решил это
git rebase --continue
Только что столкнулся с этой проблемой. У меня мой файл уже был добавлен в Git, и никаких изменений, которые нужно было бы зафиксировать, вообще не было.
Поэтому попробуйте отредактировать файл, чтобы увидеть,git status
показывает вам другой результат; если да, то ваш файл уже добавлен, и вы можете восстановить его с помощьюgit checkout -p
Пытаться
git add <folder_name>
по одному.
Если первая папка поставлена. Попробуйте добавить следующую папку. В моем случае один файл содержит какую-то проблему.
Если напрямую запустить
git add .
при наличии проблем с некоторыми файлами git игнорирует их все. Не эксперт, но со мной случилось вот что:)
Это может показаться немного глупым, но может сэкономить время: проверьте, не отслеживается ли уже файл и нет ли изменений:
git ls-files --error-unmatch <file>
. Эта команда не должна показывать никаких ошибок, если файл отслеживается.
Я просто трачу несколько минут, чтобы понять это...
У меня была аналогичная проблема с добавлением нового файла в существующую инициализированную папку git. git add <filename>
не сработало. Для меня сработалоgit add .
Я использую bash 5 и git 2.25 для Mac. Надеюсь, это поможет и кому-то другому... ура.