2012-05-08 3 views
7

Я разветвил репозиторий на GitHub.SmartGit pull не действует как ожидалось

Затем я клонировал свою вилку в папку на моей локальной среде разработки через SmartGit. Кроме того, я добавил исходный репозиторий в качестве удаленного.

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

Я нажимаю кнопку «Потянуть» в SmartGit и выбираю оригинальное диалоговое окно репо. SmartGit возвращает это мне:

remote: Counting objects: 24, done. 
remote: Total 13 (delta 7), reused 12 (delta 6) 
From github.com:Original/repo 
* [new branch]  master  -> lm/master 

Но, добавленные файлы и изменения не будут добавлены в мой локальный репозиторий. Выполнение этого вручную с помощью Git Bash - git pull original master все работает, как и ожидалось.

Почему SmartGit не тянет, как я ожидаю?

+0

Я предполагаю, что вы используете SmartGit 3.0.x. При открытии журнала и использовании Graph | Select Branch, чтобы показать «Все ветви», вы можете увидеть другие коммиты? Что показывает диспетчер филиалов для локального филиала «master»? – mstrap

+0

@mstrap После того, как вытащили, журнал показывает коммиты, но изменения не вытягиваются. Менеджер филиала выглядит следующим образом: http://postimage.org/image/qpp3mgu1x/ – Repox

ответ

10

Pull, SmartGit выполнит «git fetch» ​​и после этого слияние соответственно. rebase Отслеживаемая отрасль. В вашем случае master треков origin/master, а не lm/master. Возможны следующие варианты сейчас, всегда предполагается, что вы на master:

(1) Настройка master для отслеживания lm/master вместо origin/master: вызовите филиал | Руководитель филиала, выберите master, вызовите Reset Гусеничные Branch из контекстного меню , затем добавьте lm/master к выбору и вызовите Установить Отслеживаемый филиал. Теперь это lm/master, который будет объединен (или переустановлен) на каждые Pull.

(2) вручную объединить lm/master: вызвать Branch | Объединить и выберите lm/master.

(3) Вручную перебазирования на lm/master: Branch|Rebase вызова, выберите голову, чтобы выбранный совершает и на граф-странице, выберите лм/мастер.

+0

Выглядит довольно SmartGit-подробно. +1 – VonC

3

Вы увидите новые файлы, если upstream branch вашего текущего местного отделения был «lm/master».
Но если вы на master его вверх по течению ветвь, конечно, по умолчанию «origin/master» (т.е. master вашей вилки)

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

git merge lm/master 

или in SmartGit, merge от lm/master к вашей текущей отрасли.

+1

Это не отвечает на мой вопрос. Проблема не тянет от Git Bash, а вытаскивается из SmartGit. – Repox

+1

@Repox Конечно, я отредактировал ответ, но в основном то, что вы хотите сделать, - это слияние после вашего SmartGit pull. И SmartGit позволяет вам это делать. Я хотел бы объяснить, почему вам нужно было выполнить дополнительную операцию (будь то через ваш графический интерфейс или bash), чтобы просмотреть файлы. – VonC

7

То, что я в конечном итоге делает в SmartGit был:

  • Remote > Add (как вы это делали). Я позвонил моему вверх по течению.
  • На панели ветвей Right click upstream > fetch more.. и выберите ветки. (Обычно главный)
  • В панели ветвей Double click upstream > master. Это попросит вас создать 2-ю ветку (обычно мастер-2). Я также назвал это вверх по течению. Таким образом, у меня есть удаленное репо, называемое upstream и локальная ветвь, называемая upstream, которая отслеживает upstream/master.
  • На панели ветвей Double click Local Branches > Master, чтобы вернуть вас к своей главной ветке.

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

  • Remote > Pull и выберите вверх по течению. Если вы нажмете маленькую стрелку вниз, вы увидите, что вы можете ТОЛЬКО сделать «Ни сливать, ни переустанавливать». Это хорошо.
  • Click fetch Это позволит вам просмотреть весь журнал и что изменилось.
  • На панели ответвления Right click Local Branches > upstream > Merge.
  • Fast-Forward если вы считаете, что можете. (Мой предпочтительный способ).
  • или Create Merge-Commit.

С этого момента, Вы должны были бы только сделать это последние 5 шагов. Первые шаги были просто настроены.

3

если SmartGit выполняет Fetch на все ваши Тяговое,

Затем найдите опцию ветви в строке меню или окна ветками из приложения .. enter image description here

Тогда

enter image description here

OR

enter image description here

Вуаля ... Наслаждайтесь

Смежные вопросы