Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Клонирование git и push в два репозитория

#git #bitbucket #git_push #git_remote


Создал я локальный репозиторий у себя на компьютере:

cd /path/to/git/repo/
git init --bare --shared


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

cd /path/to/my/project/
git init
echo "Helo" >> hello.txt
git add .
git commit -m "Init"


Вот теперь я хочу в свой локальный репозиторий сделать пуш:

git remote add origin /path/to/git/repo/
git push origin master


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

cd /path/to/test/dir/
git clone /path/to/git/repo/


Теперь я хочу:


Все свои собранные коммиты запушить на свежий, только что созданный репозиторий в
bitbucket.org.
Иметь возможность пушить как на битбакет, так и в локальный репозиторий 


Что мне нужно сделать, чтобы добиться такого результата? 

P.S. Отвечая на вопрос, зачем мне нужен локальный репозиторий. Мне нужно всегда иметь
на компьютере копию проекта с учетом всех gitignore. Даже тогда, когда у меня нет интернета.
Если есть возможность провернуть это без создания локального репозитория, можете дать
совет. Но вопрос, как запушить все коммиты на битбакет и не видеть постоянные сообщения
Everything up-to-date и другие, не смотря на то, что на компе у меня лежит целая куча
нужных мне коммитов, остается открытым
    


Ответы

Ответ 1



когда вы сделали git init, вы уже создали локальный репозиторий. он находится в под-каталоге .git. файлы же, которые вы создали в этом каталоге (/path/to/my/project/), а затем с помощью git add и git commit «добавили в репозиторий», на самом деле представляют собой лишь рабочую копию содержимого репозитория. репозиторий может быть и без рабочей копии. создаётся такой репозиторий при использовании опции --bare у команд git clone, git init. фактически вы получаете в таком репозитории то же содержимое, что и в каталоге .git у репозитория с рабочей копией. поэтому создавать ещё одну локальную копию репозитория, как сделали вы в каталоге /path/to/git/repo/, нет необходимости. всё содержимое репозитория, все коммиты, вся история — доступны в любой из копий git-репозитория и без доступа к интернету. и коммиты в эту копию репозитория вы можете делать без доступа к интернету. а как сделать вторую (третью, десятую) копию репозитория на каком-нибудь удалённом сервере, вы уже знаете: $ git remote add ... $ git push ... о том, как одной командой git push отправить изменения сразу в несколько репозиториев, написано, например, здесь и здесь. и по-русски: Отправить изменения в несколько репозиториев одной командой push

Комментариев нет:

Отправить комментарий