2016-12-15 3 views
-1

Я новичок в git и очень стараюсь понять многие из них.Git: Как объединить ваши изменения в свою ветку, когда вам нужно обновить свою ветку другими изменениями?

Мне пришлось сменить 1 файл на ветке, на которую я не коснулся несколько дней, поэтому проверил эту ветку, внесли изменения и отодвинул ее назад. Тем не менее, я получил сообщение о том, что я пытался сделать fast-forward и имел контент, который мне нужен для слияния. Итак, я решил git checkout master, чтобы получить мою ветку с линией на главной.

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

Я не хочу вставлять все эти файлы в свою ветку. Есть ли способ обойти эту проблему?

ответ

1

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

git pull origin yourBranch 
# resolve merge conflicts, shouls they occur 
git push origin yourBranch 

Что касается master отрасли, вам не нужно беспокоиться об этом прямо сейчас. Возможно, в более позднее время, когда вся функция готова перейти в master, это станет проблемой.

Я понятия не имею, почему переход на master дал вам тысячи измененных файлов. Но хорошая новость заключается в том, что это не ваша прямая проблема.

+0

Спасибо за ваш ответ! Мой единственный вопрос заключается не в том, что мой первоначальный «git checkout» также захватит изменения, внесенные другим разработчиком? – MeltingDog

+1

'git checkout' переключает ветви, он не изменяет никакой ветки. Вам необходимо объединить или переустановить. –

+0

Ах спасибо! очень полезно – MeltingDog

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