2016-05-23 6 views
0

Я немного смущен git, ранее работавший с svn.Git rebasing branch

Я вытащил из основной ветки, создал свою ветку функций, работал над ней, добавлял и исправлял свои изменения локально, отталкивался на удаленный, а затем отправлял свою ветку в jenkins и все тесты проходили.

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

Так что это означает, что мои модульные тесты и тесты интеграции протекали против последней копии моего кода, но не последней копии разработки.

Я думал, что теперь я смогу снова нажать chanegs на свою удаленную ветку, чтобы дать ему последние изменения в разработке, а затем повторно запустить мои тесты, но статус git говорит, что ничего не зафиксировать и что мой рабочий каталог чист ,

Почему моя ветка не признает, что есть изменения в развитии, которые я, возможно, захочу нажать, чтобы перезапустить мои тесты?

+0

«Я подумал, что теперь я смогу снова направить chanegs в свою удаленную ветку, чтобы дать ему последние изменения в разработке, а затем повторить мои тесты, но в нем говорится, что нечего совершать и что мой рабочий каталог чист. " - Это звучит подозрительно. Чтобы подтолкнуть изменения, вы используете 'git push'. Сообщение о том, что нечего совершать, происходит от 'git commit'. Кажется, вы использовали неправильную команду. –

+0

Ну, я запустил git-статус, чтобы узнать, включены ли изменения, ничего больше – berimbolo

+0

Вам нужно настроить ветку для отслеживания удаленной ветви, на которую вы нажимаете «статус git», для печати любой информации о связи между вашей локальной ветвью и удаленной ветви. Один из способов сделать это - запустить «git push -u -f», который будет одновременно подталкивать ваши изменения и настраивать удаленное отслеживание для вас. –

ответ

2

Батарея полностью переписывает ваши изменения, заменяя предыдущие фиксации новыми. Таким образом, у вас нет ничего нового для совершения (поскольку ваши старые коммиты были изменены), но вы сможете снова нажать их в свою систему CI.

Обратите внимание, что вам может потребоваться принудительное нажатие с помощью git push --force, чтобы заменить ветвь, которую вы уже нажали. Не делайте этого за пределами филиалов функций, которые вы просто хотите, чтобы ваш CI работал против, иначе вы будете создавать проблемы для своих других членов команды.

+0

Почему статус git на ветке не показывает изменения, которые были добавлены для разработки, которые теперь находятся в моей ветке? – berimbolo

+0

'git status' показывает различия между последней головой, промежуточной областью и рабочим каталогом, фактически более или менее такими же, как и' svn status'. Он не показывает вам информацию о том, что уже было сделано для вашего филиала. –

+0

Ок, спасибо, поэтому я думаю, что мой единственный вопрос сейчас - это действительно нужно сделать толчок моей ветки и повторить тесты jenkins против последнего кода? – berimbolo