2016-08-05 3 views
0

Я новичок в использовании github с плагином visual studio 2015, и я застрял.Visual Studio 2015 с выпуском плагина github

Я создал новый проект на github и смог связать хранилище с проектом моей визуальной студии. Мне удалось синхронизировать код с депо. Затем я добавил файл readme в свой проект на github с веб-сайта. На следующий день я сделал больше кода и решил синхронизировать его с депо, но теперь он говорит, что у меня есть входящие коммиты (файл readme). Я нажал на выборку входящего коммита, но ничего не происходит. Я нажал на pull, и он говорит, что мои изменения будут перезаписаны слиянием.

Затем я отправился на исходящий коммит (те, что я только что сделал) и нажмите на кнопку push. в нем говорится, что «вы не можете направить ветвь филиала удаленному источнику, потому что в ветке удаленного репозитория есть новые коммиты. Нажатие этой ветви приведет к обновлению без пересылки в филиале в удаленном репозитории»

i click на нескольких вещах, и я до сих пор не могу решить эту проблему. Я хочу обновить текущий проект с помощью readme, а затем обновить свое хранилище. (я также новичок в терминологии)

ответ

1

Проблема в том, что у вас есть изменения на сервере, которые были совершены, и изменения в некоторых из тех же файлов на вашей локальной копии, которые конфликтуют с ним, в той степени, в которой Гит не может понять, какие из них должны «побеждать».

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

Таким образом, Fetch приведет все изменения в сторону от github, локально, но не изменит вашу рабочую копию.

Merge предназначен для смены изменений в вашей текущей ветке и их слияния (и именно там у него проблемы).

Лучшая рекомендация для работы с git (будь то Visual Studio или нет): выборка и слияние часто. По крайней мере, каждый день.

Эта страница выглядит как разумный учебник о том, как это сделать. Он похож на мои VS2015 git-плагины.

https://msdn.microsoft.com/en-us/library/dd286559.aspx

Эта страница довольно хороший учебник делать это из командной строки:

https://easyengine.io/tutorials/git/git-resolve-merge-conflicts/

(Но я должен сказать: инструмент Visual Studio облегчает) ,

Так ключевые моменты:

  • взгляд на каждый файл и исправить конфликты.
  • рассказывает мерзавцу, что вы исправили файл
  • После того, как вы сделали все файлы, вам нужно «совершить слияние»

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

Второй совет: Большинство людей, которые я знаю, которые используют git с визуальной студией, также широко используют клиента командной строки и обычно имеют дополнительный клиент gui (например, Atlasian's Sourcetree). Я использую все три каждый день.

+0

Я попытался использовать решение microsoft. Я нажимаю на Fetch, но, похоже, ничего не приносит, и он не говорит, что есть конфликт, который мне нужно решить. Затем я попробовал easyengine.io и выполнил grep -lr '<<<<<<<. команда. это ничего не давало мне. Я использую MINGW64, и когда я иду в каталог проекта, он говорит «MASTER» рядом с именем каталога. – Hyperian

+0

Можете ли вы сделать «git status» и «git branch -a» и опубликовать вывод? – GregHNZ

+0

$ git status На главном ветке Ваша ветка и «происхождение/мастер» расходятся, и имеют 1 и 1 разные коммиты соответственно. (использование «мерзавец тянуть», чтобы объединить удаленный филиал в ваши) изменений, которые будут совершенно: (использование «мерзавец сброс ГОЛОВЫ ...», чтобы убрать из буфера) нового файла: .gitattributes нового файла: .gitignore Неотслеживаемые файлы: (использование "мерзавец добавить ...", чтобы включить в то, что будет совершено) FalloutShelterSaveEditor.sln Hyperian @ Hyperian-PC MINGW64 ~/Documents/Visual Studio 2015/проекты/FalloutShelterSaveEditor (мастер) – Hyperian