Как вы получаете Git, чтобы всегда тянуть из определенной ветви?

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

478
задан David Smith 18 March 2009 в 19:18
поделиться

6 ответов

Под [branch "master"], попытайтесь добавить следующее к файлу конфигурации Мерзавца repo (.git/config):

[branch "master"]
    remote = origin
    merge = refs/heads/master

Это говорит Мерзавцу 2 вещи:

  1. , Когда Вы находитесь на основном ответвлении, удаленное значение по умолчанию является источником.
  2. При использовании git pull на основном ответвлении, без удаленного и определенного ответвления, используют значение по умолчанию, удаленное (источник) и слияние в изменениях от удаленного основного ответвления.

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

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

$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
728
ответ дан silver 19 March 2009 в 05:18
поделиться

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

[branch "master"]
    merge = refs/heads/master
4
ответ дан Ryan Graham 19 March 2009 в 05:18
поделиться
  • 1
    @emfi те относительно текущего рабочего dir и должны быть avoived для гибкости в Вашем коде. – PeeHaa 8 October 2013 в 15:02

получение по запросу Мерзавца объединения два действия - выборка новых фиксаций из удаленного репозитория в отслеженных ответвлениях и затем слиянии их в Ваше текущее ответвление .

при проверке конкретной фиксации у Вас нет текущего ответвления, у Вас только есть ГОЛОВА, указывающая на последнюю фиксацию, которую Вы сделали. Так git pull не имеет всех его параметров определенными. Вот почему это не работало.

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

$ git checkout master
$ git reflog            #to find the SHA1 of buggy commit, say  b12345
$ git revert b12345
$ git pull
$ git push

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

, Если ошибка была представлена в фиксации слияния, то эта процедура не будет работать. См. How-to-revert-a-faulty-merge.

23
ответ дан Paul 19 March 2009 в 05:18
поделиться
  • 1
    Uhm, не уверенный... It' s УГЛОВОЕ ограничение. Я don' t знают если it' s что-то они могут добавить. – mrdoob 25 July 2012 в 10:20

Просто требуемый для добавления некоторой информации, что, мы можем проверить эту информацию, относится ли git pull автоматически к какому-либо ответвлению или нет.

, Если Вы выполняете команду, git remote show origin, (принятие источника как краткое название для удаленного), мерзавец показывает эту информацию, существует ли какая-либо ссылка по умолчанию для git pull или нет.

Ниже демонстрационный вывод. (взятый из документации мерзавца).

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/schacon/ticgit
  Push  URL: https://github.com/schacon/ticgit
  HEAD branch: master
  Remote branches:
    master                               tracked
    dev-branch                           tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

отметьте часть, где она показывает, Локальное ответвление, настроенное для получения по запросу мерзавца.

В этом случае, git pull будет относиться к git pull origin master

Первоначально, если Вы клонировали репозиторий, с помощью клона мерзавца, эти вещи автоматически заботятся о. Но если Вы добавили, что удаленный вручную использующий удаленный мерзавец добавляет, они отсутствуют в конфигурации мерзавца. Если это так, затем часть, где это показывает "Локальное ответвление, настроенное для 'получения по запросу мерзавца'": отсутствовал бы в выводе git remote show origin.

следующие шаги, которые будут следовать, если никакая конфигурация не существует для git pull, были уже объяснены другими ответами.

0
ответ дан 22 November 2019 в 22:47
поделиться

Не желая редактировать мой конфигурационный файл git, я следил за информацией в сообщении @mipadi и использовал:

$ git pull origin master
10
ответ дан 22 November 2019 в 22:47
поделиться

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

  $ git config branch.master.remote origin
  $ git config branch.master.merge refs/heads/master

Или, если вы, как и я, хотите, чтобы это было по умолчанию во всех ваших проектах, включая те, над которыми вы можете работать в будущем, тогда добавьте это как глобальный параметр конфигурации:

  $ git config --global branch.master.remote origin
  $ git config --global branch.master.merge refs/heads/master
139
ответ дан 22 November 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: