Отправка из локального репозитория на удаленный сервер GitHub


113

Я создал локальный репозиторий моей папки решения Visual Studio 2010 с помощью графического интерфейса пользователя Git на моем компьютере разработчика. Затем я создал удаленный репозиторий в своей учетной записи GitHub. Теперь я ищу, как перенести мой локальный репозиторий в удаленный репозиторий.

В SVN я могу просто выполнить фиксацию с помощью TortoiseSVN, и изменения будут отправлены в удаленный репозиторий. Я не вижу подобного инструмента для Git.

Как мне отправить локальное репо в удаленное репо на GitHub?

Ответы:


230

Вы перемещаете свой локальный репозиторий в удаленный репозиторий с помощью git pushкоманды после того, как сначала установили связь между ними с помощью git remote add [alias] [url]команды. Если вы посетите свой репозиторий Github, он покажет вам URL-адрес для использования. Сначала вы введете что-то вроде:

git remote add origin git@github.com:username/reponame.git

Если вы не начали работу git cloneс удаленным репозиторием, и в этом случае этот шаг уже был выполнен за вас.

И после этого вы наберете:

git push origin master

После первого нажатия вы можете просто ввести:

git push

когда вы захотите обновить удаленный репозиторий в будущем.


1
Вы действительно набираете "~ origin ~" или просто "origin"? Лучше избегать тильды, так как она что-то значит для Git.
GoZoner

1
Для меня это работает только с https: github.com/username/repo.git, я не знаю почему.
eLRuLL

7
Пришлось git pull origin masterсначала, а потом толкнуть
Renaud

10
Почему они не могут объяснить это в обычных документах? Как будто это секрет или какое-то дерьмо. СПАСИБО!
R Claven

1
@RClaven, после создания нового репозитория на Github это четко объясняется на следующем экране в разделе, озаглавленном «Вытолкнуть существующий репозиторий из командной строки».
мудзиму

3

Тип

git push

из командной строки внутри каталога репозитория


1
Я полагаю, это будет означать использование gitbash вместо gitgui?
quakkels

Да, если вы работаете в системе без встроенной полнофункциональной командной строки, то об этом стоит упомянуть в вопросе
Гарет

нет, у меня это есть ... Просто меня немного пугает командная строка. В основном потому, что я мало использовал его. Это поможет это изменить.
quakkels

Это может быть крутая кривая обучения, но общее мнение таково, что преимущества намного перевешивают недостатки
Гарет

Спасибо. Мне не хотелось долго искать. IDE продолжает зависать до размеров. Еще раз спасибо.
Эрик Лерой

3

Subversion неявно имеет в удаленное хранилище , связанное с ним в любое время. Git, с другой стороны, позволяет использовать множество «пультов», каждый из которых представляет собой единое удаленное место, куда вы можете нажимать или извлекать.

Вам нужно добавить пульт для репозитория GitHub в ваш локальный репозиторий, а затем использовать git push ${remote}или git pull ${remote}для push и pull соответственно - или эквиваленты GUI.

Pro Git обсуждает пульты здесь: http://git-scm.com/book/ch2-5.html

Справка GitHub также обсуждает их более «целенаправленно» здесь: http://help.github.com/remotes/

Как только вы связали эти два, вы сможете толкать или тянуть ветви.


1

Это сработало для моей версии GIT 1.8.4:

  1. В папке локального репозитория щелкните правой кнопкой мыши и выберите « Git Commit Tool ».
  2. Там, выберите файлы , которые вы хотите загрузить, в разделе « Unstaged изменения » и нажмите кнопку « Stage Изменено » кнопку. (Сначала вы можете нажать кнопку « Повторное сканирование », чтобы проверить, какие файлы были изменены и еще не загружены.)
  3. Напишите сообщение о фиксации и нажмите кнопку « Зафиксировать ».
  4. Теперь снова щелкните папку правой кнопкой мыши и выберите « Git Bash ».
  5. Введите: git push origin master и введите свои учетные данные. Готово.

0

открыть командную строку Перейти в каталог проекта

введите git remote добавить источник местоположения репозитория git hub с помощью git

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.