git - источник удаленного добавления против источника удаленного набора URL


413

Я создаю новый репозиторий:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

Затем я хочу отправить свой коммит в пустой удаленный репозиторий, созданный на github, поэтому мне нужно установить remote.

В чем разница между использованием следующих команд? :

git remote add origin git@github.com:User/UserRepo.git
git remote set-url origin git@github.com:User/UserRepo.git

В конце я выполняю толчок:

git push -u origin master

Edit1:

Что происходит, когда я вызываю удаленный источник set-url сразу после git init? Создает ли источник удаленного набора URL источник? Если origin уже существует после git init, нет разницы между использованием этих команд в моем сценарии, верно?

Ответы:


509

ниже используется для добавления нового пульта:

git remote add origin git@github.com:User/UserRepo.git

ниже используется для изменения URL существующего удаленного хранилища:

git remote set-url origin git@github.com:User/UserRepo.git

ниже приведёт ваш код к главной ветви удаленного репозитория, определенного с помощью, originи -uпозволит вам указать текущую локальную ветку на удаленную главную ветку:

git push -u origin master

Документация


если я клонирую из A в мой локальный и затем использую "git remote set-url B". удалит ли он репозиторий в A? Я пытаюсь клонировать репозиторий из кода коммитов AWS в GitLab
Джош,

обычно, когда я разветвляю новый репо, я делаю ошибку и устанавливаю источник вверх по течению. В конечном итоге нужно исправить это с помощью 2-й командыgit remote set-url origin git@github.com:User/UserRepo.git
Honey

-u позвольте вам указать вашу текущую локальную ветку на удаленную главную ветку. Я не понимаю, почему я хотел бы сделать это. Я имею в виду, скажем, я вытащил из мастера, создал новый FeatureBranch ... зафиксировал свои изменения, а затем подтолкнул мои изменения в origin / featureBranch, а затем я слил / перетащить эту функцию в мой мастер. <- в данный момент я еще не закончил свой функционал? Зачем мне нужно указывать на удаленную главную ветку? Разве я не должен оформить заказ в local / master и затем извлечь из последнего источника?
Honey

Ответ очень хороший, за исключением объяснения -uфлага, что, на мой взгляд, вводит в заблуждение. Для объяснения -uфлага я бы рекомендовал взглянуть на эту
ветку

и -u позвольте вам указать вашу текущую локальную ветку на удаленную главную ветку: я не понимаю эту строку ... На что вы имели в виду?
дождь

62
  • Когда вы запускаете git remote add origin git@github.com:User/UserRepo.git, то создается новый пульт с именем origin.
  • Когда вы запускаете git remote set-url origin git@github.com:User/UserRepo.git, git ищет существующий удаленный файл с именем originи изменяет его URL удаленного хранилища. Если git не может найти какой-либо пульт, имеющий имя origin, возникает ошибка fatal: No such remote 'origin'.

Если вы собираетесь создать новый репозиторий, используйте git remote add origin git@github.com:User/UserRepo.gitдля добавления удаленного.


Пожалуйста , см edit1
Ирбис

git initне добавляет никакого происхождения. Только git-репозиторий будет инициализирован. Если вы клонируете какой-либо существующий репозиторий, он имеет удаленное происхождение. Рекомендация - использовать git add, после git initнет set-url.
Рам

@ Ram Очевидно, что не вызывать set-url после git init, так как это не имеет смысла. set-url - изменить и добавить - добавить новый пульт.
Сантош

61

Ниже приведем повторную инициализацию вашего локального репо; также очистка удаленных репо (т.е. источника):

git init

Затем ниже создаст «origin», если он не существует:

git remote add origin [repo-url]

Иначе, вы можете использовать set-urlподкоманду для редактирования существующего пульта:

git remote set-url origin [repo-url]

Кроме того, вы можете проверить существующие пульты с

git remote -v

Надеюсь это поможет!


1
git remote set-url origin ...на новом init'd репо я получил фатальное сообщение: нет такого удаленного «источника». git remote add origin ...работал.
Робб Вандавир

@RobbVandaveer Спасибо за улов! Я обновил ответ для правильного использования подкомандыset-url
vpibano

32

git remote add=> ДОБАВЛЯЕТ новый пульт.

git remote set-url=> ОБНОВЛЯЕТ существующий пульт.


  1. Удаленное имя, которое следует после, addявляется новым удаленным именем, которое не существовало до этой команды.
  2. Удаленное имя, которое следует после, set-urlуже должно существовать как удаленное имя в вашем хранилище.

git remote add myupstream someurl => Удаленное имя myupstream не существует, теперь его создают с помощью этой команды.

git remote set-url upstream someurl => восходящее удаленное имя уже существует, я просто изменяю его URL.


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream

30

Чтобы добавить новый пульт, используйте git remote addкоманду на терминале, в каталоге, в котором хранится ваш репозиторий.

Команда git remote set-urlизменяет существующий URL-адрес удаленного хранилища.

Таким образом, в основном, remote addэто добавить новый, remote set-urlэто обновить существующий


28

1. git remote add origin git@github.com:User/UserRepo.git

  • Эта команда - второй шаг в серии команд после того, как вы инициализируете git в своем текущем рабочем репозитории, используя git init.
  • Эта команда просто означает, что «вы добавляете местоположение вашего удаленного репозитория, куда вы хотите отправить / вытащить ваши файлы в / из !! ..»
  • Ваш удаленный репозиторий может находиться где угодно на github, gitlab, bitbucket и т. Д.
  • Вот originпсевдоним / альтернативное имя для вашего удаленного репозитория, так что вам не нужно каждый раз вводить полный путь для удаленного хранилища, и отныне вы заявляете, что будете использовать это имя (источник) для обращения к своему удаленному. Это имя может быть чем угодно.
  • Чтобы убедиться, что пульт установлен правильно, введите: git remote -v

    ИЛИ git remote get-url origin

2. git remote set-url origin git@github.com:User/UserRepo.git

Эта команда означает, что если вы случайно столкнулись с неправильным репозиторием в первый раз, вы можете «сбросить путь к удаленному репозиторию» с помощью приведенной выше команды.

3. git push -u remote master

Эта команда просто отправляет ваши файлы в удаленный репозиторий. У Git есть понятие, известное как «ветвь» , поэтому по умолчанию все помещается в основную ветвь, если явно не указана альтернативная ветвь.

Чтобы узнать о списке всех веток, которые есть в вашем хранилище, введите:git branch



7

Вы не можете позвонить remote set-url originсразу послеgit init , потому что git remote set-urlкоманда не создаст источник, но изменит существующий URL удаленного хранилища .

поэтому команда git remote set-urlбудет работать только в том случае, если вы либо клонировали репозиторий, либо добавили вручную удаленный узел с именем origin.

Вы можете проверить удаленный с помощью команды, git remote -vон будет показывать удаленный URL после имени, или если эта команда выдает ошибку, как, например, fatal: Not a git repository (or any of the parent directories): .gitхранилище не существует, поэтому вы должны добавить источник с помощью командыgit remote add

1. git remote add

Эта команда используется для добавления нового удаленного, вы можете использовать эту команду на терминале, в каталоге вашего хранилища.

Команда git remote add принимает два аргумента:

  1. Имя удаленного , например, происхождение
  2. Удаленный URL - адрес , например, https://github.com/user/repo.git

Например:

git remote add origin https://github.com/user/repo.git

2.git remote set-url

Команда git remote set-url изменяет существующий URL удаленного репозитория.

Команда git remote set-url принимает два аргумента:

  1. Существующее имя удаленное . Например, originили upstreamесть два распространенных варианта.
  2. Новый URL для пульта дистанционного управления

Например, вы можете изменить URL вашего пульта с SSH на HTTPS с помощью git remote set-urlкоманды.

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Вы можете проверить, что удаленный URL изменился, с помощью команды git remote -v.

примечание: «происхождение» - это соглашение, не являющееся частью команды. «origin» - это локальное имя удаленного хранилища. Вы можете использовать любое имя вместо «происхождение».

Например:

git remote add myorigin git@github.com:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

Ссылки из github: удаленное добавление , удаленный набор URL


0

Если у вас есть проект и вы хотите добавить URL удаленного хранилища, вам нужно выполнить следующую команду

git init

Если вы хотите добавить файл readme.md, вы можете создать его и добавить его с помощью команды ниже.

git add README.md

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

git commit -m "first commit"

Теперь вы завершили весь процесс локального репозитория, теперь, как вы добавляете URL удаленного репозитория? проверьте ниже команду это для ssh url, вы можете изменить его для https.

git remote add origin git@github.com:user-name/repository-name.git

Как вы продвигаете свой первый коммит, смотрите ниже команду :

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