Подтвердить что ты не робот

Как подтолкнуть незыблемые коммиты к GitHub?

У меня есть средство управления исходными текстами GitHub, добавленное к моей копии Visual Studio 2013, и когда я нажимаю правой кнопкой мыши на решении и делаю фиксацию, он говорит, что созданный коммит локально. Когда я пытаюсь синхронизировать фиксацию с сервером, кнопка синхронизации неактивна.

Мой вопрос в том, как настроить его или какие шаги предпринять, чтобы коммит был перенесен на сервер?

enter image description here

4b9b3361

Ответ 1

Похоже, что у вас нет удаленного или ветки восходящего потока, настроенного для этой ветки. Visual Studio работает так, как будто для конфигурации "push.default" установлено значение "вверх по течению".

Если вы перейдете на страницу веток, эта ветка должна быть указана в разделе ветвей "Неопубликованные". На этой странице вы можете "опубликовать" эту ветку, щелкнув правой кнопкой мыши на неопубликованной ветке и выбрав публикацию в появившемся контекстном меню. Это приведет к тому, что ветвь отправится к удаленному источнику (с ветвью с тем же именем, что и локальная ветвь), и установите информацию отслеживания восходящего потока для этой ветки. С этого момента вы можете нажимать и извлекать страницы с неавторизованными записями.

Вот экранный захват, где вам нужно пойти, чтобы опубликовать неопубликованную ветку:

Publish an unpublished branch

Ответ 2

Вам нужно добавить репозиторий GitHub онлайн в качестве удаленного в локальном репозитории git.

В командной строке это git remote add origin <urL>; Я не знаю, раскрывает ли пользовательский интерфейс VS git.

Ответ 3

Мы используем Atlassian Stash, но сначала обнаруживаем, что интерфейс Visual Studio немного запутан. Последовательность, которая работает для нас, используя только пользовательский интерфейс, выглядит следующим образом:

  • Сначала вы должны добавить свое "имя пользователя" и адрес электронной почты в глобальные параметры Git с помощью Team Explorer > Главная > Git > Git Настройки
  • На вкладке "Проводник решений" щелкните правой кнопкой мыши по решению и "Добавить решение в исходное управление" и выберите Git.
  • На вкладке "Проводник группы" нажмите только что созданное репо и перейдите к веткам.
  • Выберите главную ветку, щелкните правой кнопкой мыши по ней и выберите "Опубликовать" - вам будет предложено указать удаленный URL-адрес, после чего после его ввода вы получите приглашение имени пользователя и пароля (для удаленного сервера, например GitHub, Stash, и т.д.)
    • Все это делает git push origin master, но Microsoft предпочла сделать это запутанным, указав другое имя.
  • Подождите, пока "публикация" будет завершена (в пользовательском интерфейсе будет отображаться статус передачи файлов)
  • Как только он будет завершен, перейдите на вкладку фиксации, и вы увидите, что доступны все опции Push/Pull/Fetch и т.д.

Примечание.. Если вы создадите другую ветвь локально, вам придется нажать, "опубликовать" ее, а также до того, как удаленный знает об этом.

Окончательная заметка: Visual Studio не будет создавать проекты и репозитории для вас на удаленном компьютере. Вы должны убедиться, что репо настроено на пульте дистанционного управления, прежде чем вы можете нажать на него ветку.

Странная проблема: Мы обнаружили, что если вы попытаетесь нажать на ветку, но не смогли (из-за неправильного URL-адреса или проблемы с разрешениями), нам пришлось вернуться в командную строку, чтобы "исправить", удаленная конфигурация для репо/ветки. Это использует стандартную команду Git:

git remote add origin https://[email protected]/scm/myproject/myrepo.git

Ответ 4

После публикации ветки, как в ответе @jamill, вы можете столкнуться с этим.

В Team Explorer я смог опубликовать ветку, но тогда я ничего не мог сделать. Pull and Push были выделены серым цветом, как показано ниже:

enter image description here

Итак, я сделал Действия > Открыть командную строку. Затем введите:

git push origin My_Branch_Name

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

remote: Create pull request for My_Branch_Name: 

Если вы хотите сохранить эту ветку и объединить ее в мастер, вы можете создать запрос на перенос на своем пульте. В противном случае, как и в моем случае, я хочу отказаться от ветки. Вам не нужно ничего делать.