Работа с многопользовательской / мультимашинной установкой с Visual Studio и Git - PullRequest
0 голосов
/ 29 октября 2018

Прежде всего, я новичок в VS2017 и GIT (раньше я использовал VS2008 и SourceSafe, также SubVersion).

Мне удалось настроить свой собственный git-сервер (Bonbo), и он прекрасно работает.

Мне удалось (после некоторой путаницы) опубликовать на нем проект с использованием VS2017. Включая коммиты и прочее.

Но: Если я хочу открыть проект на новой машине, у меня возникнут проблемы.

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

Теперь я могу отредактировать проект и, возможно, создать для него локальный репозиторий.

Но как я могу зафиксировать изменения с этой 2-й машины в хранилище? Я не могу синхронизировать входящие коммиты: «1013»

Der aktuelle Branch überwacht keinen Remotebranch ", что означает

грубо переведено

"Текущая ветвь не отслеживает удаленную ветвь".

При внесении изменений все файлы помечаются как добавленные.

Если я делаю локальный пуш, он работает (локально). Но если я пытаюсь синхронизироваться, я получаю:

Error: failed to push some refs to 'https://*************'
Error: hint: Updates were rejected because the tip of your current branch is behind
 hint: its remote counterpart. Integrate the remote changes (e.g.
 hint: 'git pull ...') before pushing again.
 hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Я действительно застрял прямо сейчас ...

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Наконец-то все заработало уу

Шаги, чтобы сделать это:

  1. Либо загрузите .zip с сервера git и распакуйте его, либо используйте «git clone https://YourServer.tld/YourProject.git"» в целевом каталоге. Допустим, он становится «C: \ Git \ MyProject»
  2. Открыть VS2017. В TeamExplorer добавьте существующий локальный репозиторий. Укажите каталог, созданный в # 1.
  3. Дважды щелкните запись локального репозитория. Начальная страница репозитория отображается.
  4. Перейти в настройки репозитория. Проверьте пульты. Они должны указывать на ваш удаленный сервер (https://YourServer.tld/YourProject.git").
  5. Вернитесь домой и выберите Филиалы. Вы видите локальную ветку (master), а также "remotes / origin". Разверните этот узел и щелкните правой кнопкой мыши на «мастере» внутри него. Выберите Fetch. Не знаю, требуется ли это, просто чтобы быть уверенным.
  6. Вернувшись домой, вы видите файл решения. Дважды щелкните, чтобы открыть его.

Теперь вы можете вносить изменения.

  1. После того, как сделано (все еще на домашней странице), нажмите на Changes, введите описание фиксации (например, «Fixed опечатки») и Commit and Push.

Может быть, есть несколько других способов, как сказал Иисус. Создание его как новой ветки и так далее, но это было то, что я искал, как начинающий. :)

Большое спасибо:)

0 голосов
/ 29 октября 2018

Это довольно сложно объяснить в текстовом поле:).

Давайте разберем проблемы:

1. Как создать локальную копию Git-репозитория на новой машине.

Этот процесс называется клонированием. Вы бы использовали опцию Clone в Visual studio или из командной строки выдали бы команду git clone location.of.your.remote.repository.

Это создаст локальную копию хранилища со всеми данными и ветвями в нем.

2. Как мне синхронизировать мои изменения

В Git вы сначала фиксируете изменения в локальном репозитории, а затем отправляете их дальше в центральный или удаленный репозиторий для совместного использования (теоретически вы также можете отправлять их непосредственно своему коллеге). Это происходит через «подталкивание» ваших изменений. По умолчанию ваши изменения будут перенесены в ветку с тем же именем, что и у вашей локальной ветки, если только вы не настроили ее иначе (установив «восходящую» ветку »).

Ваша первая ошибка «Der aktuelle Branch überwacht keinen Remotebranch» может быть решена одним из следующих способов:

  • публикация ветки, которая создаст ветку с тем же именем на пульте и передаст изменения (панель синхронизации в Visual Studio будет иметь опцию публикации)
  • объединение изменений из локальной ветки в ветку, отслеживающую ветку, которая уже существует в удаленной ветке, и отправка ее вместо этого.
  • отправка изменений непосредственно в удаленную ветку из командной строки git push remote-name target-branch-name.

После успешного нажатия на пульт, вы можете «вытянуть» эти изменения на другую машину.

3. Как мне быть в курсе с пультом

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

Сначала сохраните все ваши изменения локально. И совершить эти изменения. Затем вы выполняете «тянуть», чтобы получить изменения с пульта. Git заставит слияние при необходимости. После разрешения этих конфликтов слияния вы можете отправить локально слитые изменения обратно на пульт.

Здесь также есть альтернативные варианты, которые являются более продвинутыми шаблонами.

Примечание

Кнопка синхронизации немного плохая. Он пытается сделать слишком много вещей одновременно. По умолчанию «sync» будет пытаться выполнить: «fetch», затем «pull», сразу же после «push». Рекомендуется выполнять эти шаги по отдельности, пока вы действительно не поймете, что делаете.

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