2016-07-09 3 views
0

У меня есть странное задание, и я не знаю, как это сделать ...Воссоздание мерзавец выталкивает

мне нужно посмотреть на открытом репо и один раз в день принимать все толчки, которые произошли на этом репо и перетащите их через одну учетную запись на другое репо. Вид как зеркало, но больше повторного фиксации всех нажатий

+1

вытащите из общего сервера и нажмите на альтернативный пульт (после добавления дополнительного пульта). – crashmstr

+2

cron job? «введите не менее 15 символов» –

+0

* «Повторная передача всех нажатий» * не имеет смысла для меня. Можете ли вы уточнить задание? Для меня это звучит так, как будто вы хотите раздавить все коммиты вниз на один день и перенести эту ветку в другой репозиторий. –

ответ

2

Для этого вам необходимо использовать сброс и переустановку.

Предполагая, что вы есть repo.url

git clone repo.url 
git remote add neworigin newrepo.url 

Теперь создать филиал на локальной копии

git checkout -b myworkbranch 

1) Первый раз совершают по одной учетной записи

На данный момент мастера и myworkbranch в sync

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

После этого добавьте все файлы, как вы делаете обычный толчок

git add --all 
git commit -m "My combined push" 
git push neworigin myworkbranch:master 

Это будет толкать все изменения в одну фиксацию в первый раз, обратите внимание на совершить ID

2) Продолжающееся тянуть и изменения нажмите

git checkout master 
git pull 
git checkout myworkbranch 
git rebase master 
git log 

Теперь вы снова готовы сбросить

мерзавец сброса --Мягкая Для фиксации идентификатора вы отметили ранее

git add --all 
git commit -m "My second combined commit" 
git push neworigin myworkbranch:master 

Продолжайте повторять

Не тестировался, но должен работать.

+0

Спасибо! Действительно ценю это –

2

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

git remote add mirror [email protected]:foo/bar.git 

Затем вытащить из origin (вверх по течению) и нажать на другое хранилище, например,

git pull origin master 
git push mirror master 

Удостоверьтесь, что у вас есть соответствующий доступ к двум хранилищам.

Чтобы проверить текущие настроенные пульты, запустите: git remote -v.

Чтобы выполнить эту задачу один раз в день, создайте сценарий и добавьте его выполнение в crontab или, если вы используете Linux, скопируйте сценарий в папку /etc/cron.daily (если он поддерживается вашей системой).

+0

Спасибо! Очень ценю это –

Смежные вопросы