Tortoise Git не получает последнюю фиксацию

У меня возникли проблемы с Tortoise Git и GitHub, которые не получают последнюю фиксацию всякий раз, когда я нажимаю «выбрать». Что бы он ни делал, fetch Tortoise Git помещает в папку с названием удаленного репозитория внутри моего рабочего пространства в Eclipse. Если я попробую merge, это не удастся. Чтобы решить эту проблему, у меня возникла идея заменить мою папку src Eclipse на папку src из файла fetch. Однако я не проверял, были ли загружены файлы из самой последней фиксации. Это привело к тому, что я удалил все свои последние изменения и отложил меня на день назад.

Я нашел этот вопрос несколько полезным (git fetch не получает последние коммиты) , но я не понимаю процедуры, которые Tortoise Git и GitHub используют для fetch из удаленного репозитория.

Что я могу сделать, чтобы избежать этой проблемы в будущем, и как на самом деле работают git fetch и merge?

Большое спасибо за помощь.


person M_Dragon    schedule 19.02.2018    source источник
comment
Каково ваше окружение? Вы пытаетесь полностью управлять репозиторием git внутри Eclipse или используете консольные инструменты?   -  person sorak    schedule 19.02.2018
comment
@sorak Я использую Tortoise Git для управления репозиториями.   -  person M_Dragon    schedule 19.02.2018


Ответы (1)


Я рекомендую вам запустить git pull вместо git fetch, потому что git pull выполняет git fetch, за которым следует git merge, то есть если вы намеревались git fetch, то вы git merge.

  • Когда вы используете pull, Git пытается автоматически сделать вашу работу за вас. Это зависит от контекста, поэтому Git объединит любые извлеченные коммиты с веткой, в которой вы сейчас работаете. pull автоматически объединяет коммиты, не позволяя вам предварительно просмотреть их. Если вы не будете внимательно следить за своими филиалами, вы можете столкнуться с частыми конфликтами.

  • Когда вы fetch, Git собирает все коммиты из целевой ветки, которых нет в вашей текущей ветке, и сохраняет их в вашем локальном репозитории. Однако он не объединяет их с вашей текущей веткой. Это особенно полезно, если вам нужно поддерживать репозиторий в актуальном состоянии, но вы работаете над чем-то, что может сломаться, если вы обновите свои файлы. Чтобы интегрировать коммиты в вашу основную ветку, вы используете merge.

Это должно помочь, я думаю.

Возможно, вы захотите пройти через этот вопрос SO: ">В чем разница между "git pull" и "git fetch"?

person antzshrek    schedule 19.02.2018