2016-02-10 3 views
1

Мы используем Stash для нашего SCM. В настоящее время мы - команда из трех (разработчик1, разработчик2, разработчик3). Developer1 работает над branch1 хранилища stash. Он нажал некоторые изменения в ветке1, которые я тоже работаю. Я хочу вытащить данные branch1 с удаленного сервера на мою рабочую копию.Stash-git pull issue

Но pull get aborted, потому что у меня есть локальные изменения через «инструмент исходного дерева». Как я могу сохранить локальные изменения и вытащить данные с удаленного сервера, не перезаписывая их? Я хочу, чтобы локальные изменения были удалены после последней фиксации.

Пожалуйста, помогите.

+1

Не путайте вас, но вы можете использовать 'git stash' (не то же самое, что и Stash) для вашей текущей работы, затем потяните, а затем примените stash. Это похоже на выполнение слияния с пульта в ваш локальный филиал. Вы также можете выполнить свою работу локально, а затем переустановить на пульте дистанционного управления. –

+0

Спасибо Тим. Любая идея о том, как я могу достичь этого через «исходное дерево»? – Praveen

+0

Любой из приведенных ниже ответов должен работать на вас. –

ответ

1

Используйте git stash, чтобы сменить ваши локальные изменения. Это приведет к тому, что ваша ветка будет указывать на последнюю фиксацию с удаленного. Затем сделайте git pull, чтобы получить последние изменения. Это приведет к его изменениям в вашем местном. Теперь, если вы хотите написать изменения, которые вы сделали (вы просто их спрягли), используйте git stash apply, чтобы применить изменения к последним изменениям.

+0

Спасибо, Хайдер. Однако у меня мало разъяснений. Применится ли «git stash apply» объединить мои изменения с последними данными, вытащенными (которые продвигается разработчиком1)? Должен ли я снова выполнить «git push», чтобы мои изменения отражались на пульте дистанционного управления? Извините, я очень новичок в Stash/git. – Praveen

+0

да. git stash apply применит ваши ранее спрятанные изменения в вашем местном филиале. Затем вам нужно сделать 1. git add -A 2. git commit -m "" 3. git push. Это приведет к изменениям в удаленной ветке. –

1

Если ваши текущие изменения достаточно полны для фиксации, затем продолжайте и фиксируйте их до вы тянете. Затем, когда вы потянете git, вы слияете свои изменения с другим разработчиком и создадите новый коммит с этими объединенными изменениями. Затем идите вперед и нажмите.

+0

Спасибо. Я следовал вашим указаниям. – Praveen