Не удается синхронизировать локальный git (в AWS Ubuntu) с удаленным (который находится в BitBucket) - PullRequest
0 голосов
/ 28 июня 2018

Я новичок в Git и, следовательно, изо всех сил, пожалуйста, помогите. У меня есть экземпляр AWS, где я сохраняю все свои исходные файлы, и кто-то предложил мне установить git и сохранить версии, и, следовательно, я сделал это с локальной установкой git. Я хорошо проверял файлы, а затем из-за одного другого предложения, что мне нужно иметь копию и на удаленном сервере, я начал пробовать с помощью bitbucket и добавил туда удаленный сервер, пришел к своему AWS и сделал это в каталоге верхнего уровня

git remote add origin <the https url for the bitbucket repo>
git push -u origin master

Тогда для каждой подпапки я делал как

git add <subfolder>
git commit subfolder -m "comments"
git push -v -u origin subfolder

Подпапки, которые сами не находились в git [означает, что нет .git в их папке], красиво скопированы, а подпапки, находящиеся в локальном git, просто имеют представление имени в удаленном репо с номером рядом с ним скажи как HighwayHelp [c3ac266be9cb]

где highwayhelp - это имя подпапки

Когда я пытаюсь нажать, я получаю эту ошибку

error: src refspec HighwayHelp does not match any.
error: failed to push some refs to <remote-https-link>

Что бы я ни пытался, я не могу нажать эти подпапки :-( Как я уже сказал, я новичок в Git [я был опытным пользователем Clearcase], и ​​я не понимаю, что я делаю неправильно, и хуже, я не знаю, как это исправить, несмотря на то, что я читал и пробовал все, что видел под стеком потока

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 28 июня 2018

Затем для каждой подпапки я сделал

git add <subfolder>
git commit <subfolder> -m "comments"
git push -v -u origin <subfolder>

Подпапки, которые сами не были в git [означает, что в их папке нет .git]

Я думаю, что вы неправильно понимаете, как работает Git. Каталог .git указывает на хранилище в этой папке и все подпапки . Когда вы добавляли и помещали их, вы добавляли и помещали их все в один репозиторий.

Давайте пройдемся по тому, что произошло ...

  • git add <subfolder>

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

  • git commit <subfolder> -m "comments"

Добавляет и фиксирует содержимое <subfolder>. Поскольку вы указали, что хотите зафиксировать, ваш предыдущий git add будет избыточным.

В любом случае, ваша подпапка теперь добавлена ​​в ваш один репозиторий.

  • git push -v -u origin <subfolder>

Когда я пытаюсь нажать, я получаю эту ошибку

 error: src refspec HighwayHelp does not match any.
 error: failed to push some refs to <remote-https-link>

Это не только изменения в подпапке, вы не можете этого сделать. Вы можете выдвигать только целые коммиты.

Синтаксис git push: git push <remote> <refspec>, где refspec - это обычно ветвь, которую нужно протолкнуть от и к. git push origin HighwayHelp говорит, что нужно нажать на ветку HighwayHelp, которая не существует. Вы можете прочитать больше о refspecs .

Вместо этого, поскольку все находится в одном репозитории, и вы уже зафиксировали их, вы можете просто git push.


Если ваши подпапки представляют отдельные проекты, создайте для них новые репозитории Git. Не храните их как подпапки большого проекта Git, это отличный способ запутаться. Дайте каждому проекту свой каталог и собственную папку.

Если вы сделаете это, вы захотите удалить эти коммиты подпапок из вашего репозитория. К счастью, это легко сделать в Git. Выполните git log, чтобы найти фиксацию перед тем, как зафиксировать подпапки, а затем git reset --hard <that commit>. Это вернет вашу ветку обратно к этому коммиту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...