git инициализировать и отправить локальный репозиторий на удаленный не найден

У меня есть локальный каталог на моем компьютере с Windows, который я пытаюсь:

  1. инициализировать с помощью git init
  2. добавить файл README.md в этот репозиторий
  3. синхронизируйте этот README.md файл с bitbucket

Однако у меня возникают проблемы с командами (шаги 2 и 3), которые идут после git init

Я пробовал это:

git init --bare tHartman3
git remote rm origin
git add -A
git remote add origin https://bitbucket.org/<username>/tHartman3

Теперь я готов зафиксировать, поэтому я пытаюсь:

git commit -m "Created blank README.md file for tHartman3 repository"

но выдает следующую ошибку

On branch master
nothing to commit, working tree clean

Тогда я пытаюсь

git push -u origin master

Но это дает эту ошибку

remote: Not Found
fatal: repository 'https://bitbucket.org/<username>/tHartman3/' not found

Когда я просто пытаюсь

git push

я получаю эту ошибку

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

Я не уверен, что происходит с этим, так как:

  1. git remote add origin https... вроде сработало.
  2. git remote -v хорошо выглядит

Я выполнил инструкции из здесь и здесь.

Дополнительные примечания:

  • Если я использую git remote add origin https://bitbucket.org/<username>/tHartman3 или git remote add origin https://bitbucket.org/<username>/tHartman3.git, я все равно получаю тот же результат для всех других следующих команд.

Вопрос

Здесь чего-то не хватает, чтобы создать этот локальный каталог tHartman3 в хранилище .git?


person edesz    schedule 08.02.2017    source источник
comment
Удаленное репо уже существует?   -  person Mad Physicist    schedule 08.02.2017
comment
Почему вы используете вариант --bare для git init?   -  person Chris    schedule 08.02.2017
comment
@ Крис Да, это тоже будет проблемой.   -  person Mad Physicist    schedule 08.02.2017
comment
Кроме того, битбакет позволяет вам нажимать через https?   -  person Mad Physicist    schedule 08.02.2017
comment
Согласно confluence.atlassian.com/bitbucket/, вам нужно настроить удаленный сервер для использования ssh и, возможно, загрузить соответствующий открытый ключ на сайт.   -  person Mad Physicist    schedule 08.02.2017
comment
Спасибо. Безумный физик: удаленного репо не существует. Я настроил аутентификацию с открытым ключом для битбакета... когда я запускаю любые другие команды git, мне не предлагается вводить пароль. Я просто следовал процедуре битбакета для этого (довольно просто). Однако я использую ssh... зачем это нужно?   -  person edesz    schedule 08.02.2017
comment
Опять же, я не уверен, но я думаю, что https позволяет создавать клоны только для чтения. Кроме того, если удаленного репо не существует, как вы собираетесь нажимать на него?   -  person Mad Physicist    schedule 08.02.2017
comment
Хорошо, может быть, я делаю что-то не так. Учитывая локальный (непересмотренный) каталог, вы говорите, что через git CLI невозможно инициализировать и нажать, если удаленное репо не существует. Я действительно думал, что это возможно. Это возможно только с GitHub?   -  person edesz    schedule 08.02.2017
comment
Почти уверен, что git hub не просто создаст для вас репо, если вы нажмете на что-то, чего не существует, но опять же, я могу ошибаться и в этом.   -  person Mad Physicist    schedule 08.02.2017
comment
Bitbucket поддерживает отправку и получение данных через HTTPS, при условии, что он знает репозиторий и у вас есть разрешение на отправку/вытягивание.   -  person Jim Redmond    schedule 08.02.2017


Ответы (1)


Прежде всего, создайте удаленный репозиторий на BitBucket. Вам нужно это, чтобы иметь возможность подтолкнуть к этому. Нажатие работает только в том случае, если на другом конце есть что нажимать. Вот несколько инструкций за пределами сайта: https://confluence.atlassian.com/bitbucket/create-and-clone-a-repository-800695642.html

Когда у вас есть репо, у вас есть несколько вариантов, как получить его рабочую локальную копию. Более сложный способ — создать репозиторий (не голый) и настроить пульт вручную:

git init tHartman3
git remote add origin ssh://<username>@bitbucket.org/<username>/tHartman3

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

Более простой способ сделать локальный клон — просто запустить команду, которую битбакет показывает, когда вы нажимаете кнопку клонирования:

git clone ssh://<username>@bitbucket.org/<username>/tHartman3

Теперь вы можете добавить файл readme и запустить git -A. Перед фиксацией обычно рекомендуется запустить git status. Если у вас нет промежуточных файлов, фиксация завершится ошибкой. В этом случае добавьте любые файлы, которые вам нужны вручную:

git add README.md

Теперь фиксация и отправка должны работать гладко:

git commit -m '...'
git push
person Mad Physicist    schedule 08.02.2017
comment
Хорошо, это сработало. Я заметил одну вещь: если я запускаю git remote add origin... до или после git add README.md, похоже, это не имеет никакого значения. git commit -m "..." && git push работает в любом случае. Удивлен этим. - person edesz; 08.02.2017
comment
Да, вы можете выполнять git remote команды до или после git add, так как они работают над разными вещами. Однако вам нужно git add до git commit, и вам нужно git remote add до git push. - person Jim Redmond; 08.02.2017
comment
Также: да, вы можете использовать HTTPS-удаления на Bitbucket, хотя двухфакторная аутентификация усложняет это. - person Jim Redmond; 08.02.2017
comment
@ВР. Что сказал Джим. Также принято выбирать ответ, если он у вас сработал. Проголосовать тоже приятно. - person Mad Physicist; 09.02.2017
comment
Спасибо! Ответ на вопрос. - person edesz; 09.02.2017