Reinitialized existing git repository in что делать
Получение «fatal: Not a git repository» при попытке удаленного добавления репозитория Git
Я представляю себя Git, следуя этому руководству:
все работает нормально до той части, где РЕПО добавляется к моей локальной машине:
(после замены имени пользователя, NFSNSERVER и REPOAME с правильными именами) я получаю сообщение об ошибке:
можете ли вы помочь мне пройти этот шаг?
22 ответов
вы ввели локальный репозиторий Git, в который предполагается добавить этот пульт?
вам нужно cd в репозиторий / рабочую копию, или вы не инициализировали или не клонировали репозиторий в первую очередь, в этом случае вам нужно инициализировать РЕПО в каталоге где вы хотите разместить РЕПО:
или клонировать репозиторий
Примечание: это не отвечает на общую проблему, которая была проблемой OP, но к другой проблеме, где это сообщение об ошибке может возникнуть. Мне не хотелось делать новый вопрос, чтобы записать этот ответ, скажите мне, Должен ли я сделать это вместо этого 😛
так как у меня не было ничего, что действительно нуждалось в сохранении, я просто пошел с dummy way и сделал.
по крайней мере для меня reflog ( git reflog ) исчезнуть полностью. Следовательно, если вы сделаете сброс, и были некоторые изменения, которые вы хотели предотвратить, я не уверен, что вы можете вернуть их после сброса. Поэтому убедитесь, что у вас есть все изменения, которые вы не можете потерять, в конечном счете, просто скопировав клон перед попыткой этого.
проблема пустой головной файл.
в командной строке / CLI вы получите эту ошибку, если ваш текущий каталог не является репозиторием. Итак, вы должны сначала CD в репо.
эта проблема возникла у меня после того, как я переместил местоположение проекта git в файловой системе. Когда я запускал некоторые команды git, произошла ошибка, например:
Я нашел в /home/rospasta/path_old/gitprojecta/.travis/.git был записан абсолютный путь к старому местоположению проекта. Вручную обновление этого пути нового местоположения решило проблему для меня.
поэтому моя проблема может быть или не быть проблемой git, но HTH.
затем снова инициализируйте git-РЕПО
просто введите следующее в cmd или git shell или любом другом терминале:
для этого вам нужно ввести одну команду, которая отсутствует в командах bitbucket
пожалуйста, попробуйте git init.
устранение:
даже у меня была такая же проблема. я написал сценарий оболочки, который будет создавать резервные копии всех моих кодов в моем РЕПО git в рабочие дни недели в 17: 55 с помощью crontab. увидев журналы cron, я нашел вышеупомянутую проблему.
и еще одна вещь на cmd перейдите в свой репозиторий git или cd, чтобы где ваш клон находится в вашем окне, обычно они будут храниться в документах под GitHub cd Document/Github / yourproject после этого вы можете иметь любые команды git
поэтому перейдите в каталог в каталог репозитория, где у вас есть проверка кода из git, а затем запустите эту команду.
GIT_DIR должен быть unset: unset GIT_DIR
в моем случае я обнаружил, что git в windows стал чувствительным к регистру для буквы диска с некоторого момента.
после обновления двоичного файла git в командах cli windows, которые раньше работали, остановились. например, путь в скрипте был D:\bla\file.txt, в то время как команда git принято только d:\bla\file.txt
все вернулось в норму, и git также распознал мои измененные / неустановленные файлы.
я исправил это, восстановив корневые файлы.
У меня была эта проблема с плагином Jenkins Git после проблем аутентификации с GitLab. Дженкинс докладывал о Хадсоне.подключаемый модуль.мерзавец.GitException: [. ]stderr: GitLab: проект, который вы искали, не найден. фатальная ошибка: не удалось прочитать из удаленного репозитория.’
однако, если я сделал «git clone» или «git fetch» непосредственно из окна Дженкинса (командной строки), он работал без проблем.
проблема была решена с помощью удаление весь /рабочая область каталог в папке Jenkins jobs для этого конкретного задания, например
Git для начинающих: основы рабочего процесса и базовые команды
Статья «Git для начинающих» направлена на усовершенствование навыка его использования и исправление распространенных ошибок.
Рассмотрим различные ситуации из жизни разработчика (и не только). К каждой будет прилагаться правильное оптимальное решение.
Git для начинающих: основные команды
Git init
Git add
Если вы хотите добавить файлы с определенным расширением и следом указать имя каталога, то можно выполнить следующую команду. Она добавит все .py файлы из подкаталогов models/directory:
Git clean
Допустим, вы создали несколько новых файлов или папок в ветке Git, а через время оказалось, что эти файлы больше не нужны. В этом случае нужно очистить свое рабочее дерево от лишних файлов (которые были добавлены с помощью git add) следующей командой:
Чтобы увидеть, какие untracked-файлы будут удалены, используйте команду:
Git rm
Следующая команда в подборке «Git для начинающих» поможет удалить отслеживаемые файлы:
Если удаляемый файл находится в staging-области, нужно применить специальный флаг:
На случай если вы хотите удалить файлы из репозитория, а в своей ФС оставить, выполните эту команду:
Git branch
Вы сделали опечатку в имени ветки или хотите изменить ее имя? Следующая команда вам в помощь:
Если нужно изменить имя текущей ветки:
Для изменения имени запушиной ветки потребуется выполнить несколько дополнительных шагов:
Если имя локальной ветки не совпадает с именем ветки в репозитории, используйте команду:
Git log
Чтобы увидеть историю Git коммит, применяйте команду git log. Вам будет показано много информации, но среди этого вам нужен только commit id и сообщение. Для изменения вывода выполните такую команду:
Она покажет вывод, как на картинке ниже.
Первые семь символов – это сокращенный commit id, а после него идет сообщение. Commit id представлен в сокращенном виде, т. к. «полная версия» состоит из сорока шестнадцатеричных символов, указывающих на 160-разрядный SHA1 хэш.
Head -> master – означает, что мы в ветке master.
Если вы хотите увидеть сообщение конкретного автора, можно выполнить это:
Git stash
Допустим, вы решили проверить код ветки перед внесением изменений. Для этого есть команда stash, которая будет держать рабочее дерево в «чистоте»:
Для отмены изменений делайте так:
А если передумали, делайте откат:
Git checkout
Чтобы переключиться на другую ветку, выполните команду:
Не забывайте сохранять изменения или делать Git коммит в текущей ветке. Если этого не сделать, изменения могут отразиться на других ветках, а вам это не нужно.
Например, есть ветка development, и вы хотите сделать ее копию, чтобы переключаться в нее напрямую. Это можно сделать так:
Git commit
Вы закоммитили изменения, позже поняли, что допустили ошибку, или просто необходимо сделать описание более понятным. Тогда эта команда – то, что нужно:
Если вы добавили новые файлы или исправили ошибку, но не хотите добавлять еще одно commit-сообщение, используйте команду с флагом —no-edit:
Вы запушили свой код в удаленный репозиторий, а затем поняли, что нужно изменить commit-сообщение. Для этого после внесения изменений сделайте принудительный push. Используя имя удаленного репозитория в качестве источника, выполните:
Git reset
Если вам нужно отменить последний коммит, используйте git reset. Существуют три полезных флага сброса:
Предположим, вы хотите отменить изменения, до момента добавления файла two.txt, имеющего commit id 96b037c.
Теперь давайте выполним команду git reset с флагом —soft:
git reset —soft «потеряет» все коммиты после этого идентификатора (например, 96b037c), но файлы не будут удалены, они будут находиться в промежуточной области.
Потерянные коммиты не имеют прямой ссылки для доступа к ним. Такие коммиты обычно можно найти и восстановить с помощью git reflog. Git навсегда удалит «потеряшки», когда запустится сборщик мусора (запуск производится каждые 30 дней).
При запуске git status вы увидите:
Если выполнить команду reset с флагом —mixed, коммиты станут «потерянными», файлы не будут находиться в промежуточной области, но их можно будет найти в ФС. Если вы вообще не укажете флаг в команде reset, флаг —mixed будет использоваться по умолчанию.
При запуске git status увидим следующее:
Если необходимо окончательно удалить файлы, запустите команду reset с флагом —hard.
Никогда не используйте git reset после того, как все запушено в общедоступный репозиторий. Удаление коммита, с которым продолжают работать другие члены команды, создает серьезные проблемы.
Git revert
Еще один способ отменить Git коммит:
Revert отменяет не коммит, а изменения возвращенного commit-id.
Например, необходимо отменить последний коммит. После revert-а статус будет выглядеть так:
Перед последним коммитом файл six.txt не был добавлен, поэтому он удален, а five.txt возвращается в предыдущее состояние. Теперь история будет выглядеть так:
Если вы хотите отменить несколько коммитов в пределах диапазона, выполните следующую команду:
Если нужно отменить несколько коммитов, вне диапазона, следует указывать каждый commit-id:
Git cherry-pick
И последняя команда из рубрики Git для начинающих – cherry-pick. Чтобы сделать коммит (например, исправление ошибки) в ветке «А», работая в ветке «Б», используйте команду cherry-pick.
Сначала необходимо переключиться на ветку с коммитом, скопировать commit-id, а потом перейти обратно в свою ветку. Затем выполните следующую команду, чтобы получить коммит в рабочей ветке:
Git fetch
Команда для случаев, когда необходимо собрать все существующие коммиты из нужной ветки (удаленный репозиторий) и сохранить их в local repository. После выполнения git fetch вы получаете ссылки на ветки удаленного проекта. Суть и главное преимущество команды в том, что с ее помощью вы не сливаете все коммиты в основную ветку.
Git merge
А вот git merge как раз для этого и нужен.
Git pull
Git push
Если git pull предназначен для мержа изменений в локальный репозиторий из удаленного, то git push действует с точностью до наоборот: локальные изменения пушатся в удаленный репозиторий.
Также можно использовать:
А какие еще команды вы бы посоветовали изучить новичкам?
git init new from existing repository
So I had an existing repository on github and I want to now push the same files into a new repository. I run git init in the terminal and it says «Reinitialized existing Git repository in. «
So how can I push the files into my new repo?
3 Answers 3
remove the old ‘origin’ remote and add new origin remote
Add all files and commit the changes
Now push the files.
But in fact you didn’t:
As you can see from this message, Git is «reinitializing» the existing repository. This basically does nothing at all. 1
Remember that a repository is not «a bunch of files», it is a collection of commits. More precisely, a repository consists, at its heart, of two databases:
The main database, which is copied by cloning, holds all of Git’s internal objects. This includes your commits as internal commit objects, along with three other object types that make the commit objects work in the way we expect.
The secondary database holds all of the names by which you can find commits. This includes branch names, tag names, remote-tracking names, and other names. This database is not copied, at least not directly, by cloning: the Git that is doing the cloning reads it, but modifies what is to be stored, so that the new clone of some existing repository normally has all the commits but none of the branches.
(At the end of the cloning process, the Git that is doing the cloning normally creates one new branch name in the new repository. The branch name that gets created here identifies the same commit as some name in the source repository. You choose which new branch name to create, if any, with arguments to your git clone command; if you don’t choose one, your Git picks a branch to create based on a suggestion made by the other Git, which looks at the source repository. GitHub and other hosting servers call this recommendation the default branch. They need a term for this because the way they set the recommendation is through their web interfaces. In fact, though, it’s simply whichever branch name HEAD in the source repository is attached-to.)
The phrase not in the repository here is doing some fairly heavy-duty work. What I mean is this:
1 Its main function is to copy a new hook template directory into place. If you have not adjusted your existing hooks, and are using the same standard hook template as before, nothing actually happens here. If you’re using a different template directory, this sort of «reinitializing» can be useful. I have not heard of anyone actually doing this, but it’s certainly possible that someone out there does it as a matter of routine.
3 Despite git clone not copying any of the branch names, the clone is usually just as good as a full copy, because the owner of the copy can now create a branch name for each of the remote-tracking names that they have in their clone. Those remote-tracking names are the result of copying your clone’s branch names. As soon as they make such names, they have all the same branches that you have.
If they like, they can copy each remote-tracking name to two branch names, after which they have twice as many branches as you have. This is the thing about branches in Git: they literally don’t matter. It’s not a matter of branch names. Those are not valuable currency, in Git. They’re just bookmarks, sort of. What matters in Git are the commits, and the clone has all of the commits. There are some exceptions to this rule, especially for shallow and/or single-branch clones, but in general, cloning copies all the commits and none of the branches, and that makes a complete copy, because branch names simply don’t matter.
Conclusion
Gitlab Runner не работает над конкретным проектом
Я зарегистрировал 11 проектов GitLab Runner. Бегуны каждого проекта работают нормально, кроме 1 проекта. Я впервые зарегистрировал бегуна этого проекта, он работает. Но после того, как я фиксирую / подталкиваю некоторые изменения, происходит ошибка и сбой задания. Я видел несколько решений, что обновление git-версии решило проблему, но я так не думаю. Потому что все бегуны работают отлично, кроме этого проекта.
Серверная ОС: CentOS 7
мерзавец: 1.8.3.1
Второй коммит / тянуть, потом
4 ответа
Centos 7 поставляется с версией git 1.8.3.1. Эта версия не поддерживает такие команды, как git fetch-pack. Чтобы решить эту проблему, вы можете обновить git на своем сервере из репозитория IUS. обновить git на Centos 7 до версии 2 от стороннего репозитория IUS
Я сделал новый проект и, наконец, он работает отлично. Я не знаю, почему другой не работал. Если возникают такие же проблемы, как у меня, не становитесь слишком серьезными: просто создайте новый проект gitlab. Это хорошо для вашего психического благополучия.
Вы можете обойти эту проблему, не обновляя git вообще:
1. Стратегия клонирования
2. Удалить каталог проекта вручную (не рекомендуется)
Удалите вручную каталог сборки с сервера gitlab-runner, чтобы ему пришлось снова его клонировать.
Для проекта testgroup/testproject запустите:
осторожнее с командами rm!
Обратите внимание, что после каталога builds есть случайная строка, которая будет отличаться от этого примера.
У меня была похожая проблема, и мне пришлось обновить Git. Centos 7 поставляется с git-1.8.x, который имеет ограничения вокруг gitlab-ci.
Обновите ваш git на основе это руководство.
Git: получение сообщения «фатальный: не репозиторий git» при попытке удаленного добавления репозитория Git
Я знакомлюсь с Git, следуя этому руководству:
Все работает нормально до тех пор, пока репо не будет добавлено на мою локальную машину:
(После замены USERNAME, NFSNSERVER и REPONAME на правильные имена) я получаю следующую ошибку:
Вы можете помочь мне пройти этот шаг?
30 ответов
Вы инициировали локальный репозиторий Git, в который предполагается добавить этот пульт?
Вам потребуется либо cd в репозиторий / рабочую копию, либо вы не инициализировали или не клонировали репозиторий в первую очередь, и в этом случае вам нужно инициализировать репо в каталоге, в котором вы хотите разместить репо:
Или клонировать репозиторий
ПРИМЕЧАНИЕ: это не ответ на общую проблему, которая была проблемой OP, а на другую проблему, при которой может появиться это сообщение об ошибке. Мне не хотелось задавать новый вопрос только для того, чтобы записать этот ответ, скажите мне, следует ли мне сделать это вместо этого: P
По крайней мере, для меня рефлог ( git reflog ) полностью исчез. Следовательно, если вы выполняете сброс и есть некоторые изменения, которые вы хотели предотвратить, я не уверен, что вы больше сможете их вернуть после сброса. Итак, убедитесь, что у вас есть все изменения, резервные копии которых вы не можете потерять, в конечном итоге просто скопировав клон, прежде чем пытаться это сделать.
Просто введите следующее в оболочке cmd, git или любом другом терминале:
Восстановление решило проблему.
Эта проблема возникла у меня после того, как я переместил проект git в файловую систему. Когда я запустил несколько команд git, произошла ошибка, например:
Я обнаружил, что в /home/rospasta/path_old/gitprojecta/.travis/.git был записан абсолютный путь к старому местоположению проекта. Обновление этого пути к новому местоположению вручную решило проблему для меня.
Так что моя проблема может быть или не быть проблемой git, но HTH.
В командной строке / CLI вы получите эту ошибку, если ваш текущий каталог НЕ является репозиторием. Итак, вы должны сначала поместить компакт-диск в репо.
Похоже, вы не собираетесь в свою конкретную папку. Например, если я работаю над проектом с именем bugsBunny, и он сохранен в папке d: / work: code, поэтому сначала вам нужно перейти в эту папку с помощью cd d: / work / code / bugsBunny, а затем вы можете продолжать использовать ваши команды git.
Для меня проблема возникает только тогда, когда кто-то пытается выполнить команды git из каталога, отличного от git ( т.е. из другого каталога, который не является рабочей копией ).
Решение:
Для этого вам нужно ввести одну команду, отсутствующую в командах bitbucket.
Пожалуйста, попробуйте git init.
GIT_DIR не должен быть установлен: unset GIT_DIR
И он снова заработал.
У меня была такая же проблема, когда я пробовал любые команды git (например, git status) с помощью Windows cmd. Итак, что я делаю, это после установки git для окна https://windows.github.com/ в среде переменных, добавьте путь к классу git в переменную «PATH». обычно git устанавливается на C:/user/»username»/appdata/local/git/bin и добавляет это в ПУТЬ в переменной окружения.
И еще одна вещь в cmd, перейдите в ваш репозиторий git или cd туда, где ваш клон находится в вашем окне, обычно они будут храниться в документах в github cd Document / Github / yourproject после этого вы можете использовать любые команды git
Поэтому перейдите в каталог в каталог репозитория, где вы получили код из git, а затем запустите эту команду.
В моем случае я обнаружил, что git в Windows в какой-то момент стал чувствительным к регистру букв диска.
После обновления бинарного файла git в Windows команды cli, которые раньше работали, перестали работать. например, путь в сценарии был D : \ bla \ file.txt, в то время как команда git принимала только d : \ bla \ file.txt
Все вернулось к норме, и git также распознал мои измененные / неустановленные файлы.
Я обратился к этому вопросу, потому что обнаружил сообщение об ошибке
И поскольку я боялся, что между версиями git есть некоторая несовместимость (к счастью, нет),
Ни один из ответов, которые я здесь прочитал, не был решением для моего случая, и я считаю некоторые из этих ответов опасными и вводящими в заблуждение.
В OpenBSD с ksh он работает с этим синтаксисом для определения псевдонимов, в то время как в Linux с bash
внутри такого же точного определения псевдонима не расширяется при вызове псевдонима, я решено удалением кавычек в определении псевдонима.
Исправил восстановлением корневых файлов.
У меня возникла эта проблема с плагином Jenkins Git после проблем с аутентификацией с GitLab. Дженкинс сообщал «hudson.plugins.git.GitException: [. ] stderr: GitLab: Проект, который вы искали, не найден. фатальный: не удалось прочитать из удаленного репозитория. ‘
Однако, если я сделал «git clone» или «git fetch» прямо из окна Jenkins (командная строка), он работал без проблем.
Проблема была решена путем удаления всего каталога / workspace в папке заданий Jenkins для этого конкретного задания, например
Это также может быть связано с разрешениями. Проверьте разрешения владельца / группы и убедитесь, что у вас есть соответствующие разрешения для доступа к этим данным. В моем случае я столкнулся с этой ошибкой при запуске «git status» в репо, владельцем которого был установлен root: root. Запуск «git status» от имени пользователя root решил мою проблему. В качестве альтернативы, если вы не хотите, чтобы владельцем пользователя / группы был root: root, выберите в репозитории то, к чему у вас есть доступ.
У меня была эта проблема, и я исправил ее, добавив файл README.md
В моем случае системный сбой привел к повреждению файла HEAD. В этом руководстве показано, как исправить эту и другие проблемы, с которыми вы можете столкнуться.
Нажмите git init с помощью терминала / cmd в нужной папке. Это сработает.
Затем снова инициализируйте репозиторий git
Чтобы узнать, какая версия поддерживается, перейдите в журналы actions/checkout и обновите свою версию server git до указанной версии или выше.