Слияние на сервере Raspberry Pi2 git [дубликат]

Наибольшее значение, представляемое n-битным целым числом, равно 2n-1. Как отмечено выше, float имеет 24 бита точности в значении, которое, как представляется, означает, что 224 не подходит. Однако . Силы 2 в пределах показателя экспоненты точно представлены как 1,0 & times; 2n, поэтому 224 может соответствовать, и, следовательно, первое непредставимое целое число для float равно 224 + 1. Как указано выше. Опять же.

49
задан Bialecki 21 September 2009 в 22:16
поделиться

12 ответов

Прямой причиной ошибки является то, что да, невозможно использовать git-add с открытым репозиторием. Голый репозиторий по определению не имеет рабочего дерева. git-add берет файлы из рабочего дерева и добавляет их в индекс, готовясь к фиксации.

Возможно, вам, возможно, потребуется немного подумать о вашей настройке. GIT_DIR - это каталог репозитория, используемый для всех команд git. Вы действительно пытаетесь создать единый репозиторий для всего, что вы отслеживаете, возможно, повсюду в вашей системе? Git-репозиторий по своей природе отслеживает содержимое одного каталога. Вам нужно будет установить GIT_WORK_TREE путь, содержащий все, что вы хотите отслеживать, а затем вам понадобится .gitignore, чтобы заблокировать все, что вам не интересно отслеживать.

Возможно, вы 'пытается создать репозиторий, который будет отслеживать только c:\www? Затем вы должны поместить его в c:\www (не устанавливайте GIT_DIR). Это нормальное использование git с репозиторией в каталоге .git каталога верхнего уровня вашего «модуля».

Если у вас нет действительно веской причины, я бы рекомендовал придерживаться way git любит работать. Если у вас есть несколько вещей для отслеживания, вы, вероятно, хотите несколько репозиториев!

41
ответ дан Cascabel 21 August 2018 в 07:50
поделиться
  • 1
    1. Мы просто следуем «Everyday GIT в 20 командах» и git-init (1) manpPage от Linus T. (к сожалению, может быть устаревшим?) 2. В вашем сообщении только указано, что не так, но не дает нам никаких подскажите, что с этим делать – user 16 April 2010 в 14:58
  • 2
    Просто git config --unset core.bare. – Matthias Urlichs 10 January 2015 в 11:42

Кроме того, вы, вероятно, находитесь в подпапке .git, перемещаете одну папку в свой корень проекта.

126
ответ дан blj 21 August 2018 в 07:50
поделиться

Создать голый репозиторий GIT

Небольшой разбор: git не может самостоятельно создать обычный голый репозиторий. Глупый git действительно.

Чтобы быть точным, невозможно клонировать пустые репозитории. Таким образом, пустой репозиторий - бесполезный репозиторий. Действительно, вы обычно создаете пустой репозиторий и сразу же заполняете его:

git init
git add .

Однако git add невозможно при создании открытого репозитория:

git --bare init
git add .

дает ошибку «fatal: эта операция должна выполняться в дереве работ».

Вы также не можете проверить это:

Initialized empty Git repository in /home/user/myrepos/.git/
fatal: http://repository.example.org/projects/myrepos.git/info/refs not found: did you run git update-server-info on the server?

git --bare init
git update-server-info # this creates the info/refs file
chown -R <user>:<group> . # make sure others can update the repository

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

mkdir temp; cd temp
git init
touch .gitignore
git add .gitignore
git commit -m "Initial commit"
git push (url or path of bare repository) master
cd ..; rm -rf temp

надеюсь, что это поможет u

6
ответ дан CB Bailey 21 August 2018 в 07:50
поделиться
  • 1
    Это просто неверно. Вы можете создать голый репозиторий и клонировать его. Даже если бы это было так, это все равно не затрагивает вопрос. (Например, $ git --bare init bare.git Initialized empty Git repository in /home18/cbailey/gittest8/bare.git/ $ git clone bare.git non-bare Cloning into 'non-bare'... \\ done. \\ warning: You appear to have cloned an empty repository. – CB Bailey 9 July 2012 в 09:04
  • 2
    Прошу прощения, если я использую & quot; & quot; & quot ;, чтобы упаковать "url или путь открытого хранилища", он будет невидимым. и то, что я сказал вверх, действительно полезно. У меня есть тест и проверка. – user1329261 12 July 2012 в 03:57

В моем случае я был в той же папке, что и файл .git для моего репо. Мне нужно было идти на один уровень каталогов, он решил это.

2
ответ дан chethan jain 21 August 2018 в 07:50
поделиться

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

Пример

Создать временную папку:

mkdir temp

переключиться на папку temp

cd temp/

клонировать один и тот же проект в папке temp:

git clone [-b branchName] git@path_to_your_git_repository

скопировать папку .git в ваш проект:

cp -R .git/ path/to/your/project/

переключитесь на ваш проект и запустите git status

удалите временную папку, если вы закончили.

надеюсь, что это поможет кому-то

7
ответ дан Festus Tamakloe 21 August 2018 в 07:50
поделиться
  • 1
    Я нашел это полезным, но я должен сказать, что первой строки было достаточно, чтобы понять, что случилось. Остальная часть этого меня немного смутила. В любом случае, спасибо! – randombee 27 April 2016 в 13:09

Если ни один из вышеперечисленных способов не поможет вам, посмотрите на трассировку вызова под этим сообщением об ошибке ("fatal: This operation . . .") и найдите сценарий и строку, которая поднимает фактическую ошибку. Как только вы обнаружите этот вызов (), отключите его и проверьте, завершена ли операция, которую вы пытаетесь выполнить, даже с некоторыми предупреждениями / сообщениями - на данный момент их игнорировать. Если это так, то, наконец, после завершения может указать часть операции, которая не была успешно завершена. Теперь, примените эту часть отдельно.

Относительно логики к моему делу, я получал это сообщение об ошибке "fatal: This operation . . .", когда пытался получить код Android-x86 с помощью repo sync . . .. и трассировка вызова показала raise GitError("cannot initialize work tree") как вызов error (), вызывающий указанное выше сообщение об ошибке ("fatal: . . ."). Итак, после комментирования того, что GitError() в .repo/repo/project.py, repo sync . . . продолжался и, наконец, указал ошибку для трех проектов, которые не были правильно синхронизированы. Я просто удалил их папки *.git из их соответствующих путей в исходном дереве Android-x86 локально и снова запустил repo sync . . . и пробовал успех!

0
ответ дан geekie12 21 August 2018 в 07:50
поделиться

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

11
ответ дан Jacob Zimmerman 21 August 2018 в 07:50
поделиться
  • 1
    Подобный опыт. В моем случае я использовал GitExtensions (для Windows), и, пытаясь открыть репозиторий, я щелкнул, чтобы открыть .git-файл, а не содержащую папку. Сначала посмотрел хорошо, но дал мне ошибку дерева, когда я начал на самом деле что-то делать. – thund 30 August 2017 в 22:59
  • 2
    Мне нравится, что у этого есть дюжина upvotes. Я рад, что я опубликовал этот ответ, хотя это казалось очевидным. – Jacob Zimmerman 14 August 2018 в 03:31

У меня была эта проблема, потому что .git/config содержал worktree = D:/git-repositories/OldName. Я просто изменил его на worktree = D:/git-repositories/NewName

. Я обнаружил, что, поскольку я использовал git gui , который показал более подробное сообщение об ошибке:

1
ответ дан koppor 21 August 2018 в 07:50
поделиться

В том же выпуске я получил следующие шаги:

  1. git init
  2. git add.
  3. git commit -m "inital setup"
  4. git push -f origin master

, после чего он начинает работать.

0
ответ дан raghavendra 21 August 2018 в 07:50
поделиться

Если текущая (не-голая) проверка начнет давать эту ошибку, проверьте файл .git / config; если core.bare истинно, удалите эту конфигурационную строку

0
ответ дан ThorSummoner 21 August 2018 в 07:50
поделиться
2
ответ дан Babajide M. Moibi 1 November 2018 в 02:45
поделиться
6
ответ дан CB Bailey 1 November 2018 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: