У меня есть один репозиторий, который я хочу разместить в Bitbucket и GitHub. Жизненно важно, чтобы мой репозиторий размещался на обоих серверах.
Есть ли способ сделать это в Git?
У меня есть один репозиторий, который я хочу разместить в Bitbucket и GitHub. Жизненно важно, чтобы мой репозиторий размещался на обоих серверах.
Есть ли способ сделать это в Git?
Ответы:
Вы можете использовать несколько удаленных репозиториев с помощью git. Но я думаю, вам придется вставлять отдельно в два пульта.
Например, если ваш проект в настоящее время указывает на github, вы можете переименовать текущий удаленный репозиторий в github
:
$ git remote rename origin github
Затем вы можете добавить еще один удаленный репозиторий, например bitbucket
:
$ git remote add bitbucket git@bitbucket.org:your_user/your_repo.git
Теперь, чтобы внести изменения в соответствующую ветку на github или bitbucket, вы можете сделать это:
$ git push github HEAD
$ git push bitbucket HEAD
То же правило применяется к вытягиванию: вам нужно указать, с какого пульта вы хотите получить:
$ git pull github your_branch
$ git pull bitbucket your_branch
.ssh/config
файл - ключ к достижению этой настройки. Добавьте a Host github.com
и a Host bitbucket.org
, чтобы определить, что IdentityFile
использовать. Тогда вы не получите ошибок, связанных с отказом в разрешении, при попытке переключаться между bitbucket и github. Надеюсь, это кому-то поможет.
Да, ты можешь это сделать. Вам не нужно нажимать дважды, а только один раз, чтобы отправить в оба удаленных репозитория. У меня была такая же проблема раньше, поэтому я написал, как это сделать здесь. Git: Push to / Pull из Github и Bitbucket
Несколько ЛЕГКИХ решений.
Это легче всего понять, но требует больше усилий для поддержания.
Начнем с добавления нашего нового пульта ДУ:
$ cd myproject
$ git remote add bitbucket ssh://git@bitbucket.org/user/myproject.git
$ git push bitbucket master
Сразу нет? За исключением, конечно, каждого случая, когда мы фиксируем какие-либо изменения, нам нужно нажимать как на наш исходный «origin», так и на наш новый удаленный «bitbucket»:
$ git push origin master
$ git push bitbucket master
Не огромные накладные расходы, но я уверен, что со временем он надоест. Или вы можете создать ʻalias gpob = "git push origin master && git push bitbucket master".
С помощью этого метода мы собираемся добавить дополнительный URL-адрес к существующему удаленному «источнику»:
$ cd myproject
$ git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
$ git push origin master
Everything up-to-date
Everything up-to-date
Намного меньше усилий!
Конечно, у серебряной подкладки есть облако, и в данном случае дело в том, что, хотя мы можем передавать несколько URL-адресов одновременно, мы можем извлекать только из исходного «источника» (вы можете изменить это, но это выходит за рамки данной публикации. ).
Наконец, чтобы увидеть, какой пульт будет извлечен из:
$ git remote -v show
Я тоже писал об этом в блоге .