2016-08-03 4 views
0

Я использую Source Tree и хотел обновить мою локальную ветку новыми изменениями из удаленной ветви, прежде чем нажимать изменения, над которыми я работал. Я сделал мерзавец тянуть (из пользовательского интерфейса, было 2 фиксаций, что я пропускал)После отбрасывания git pull, местный филиал считает, что он обновлен

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

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

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

Как обновить локальную ветвь с отсутствующими файлами? А также был ли лучший способ сделать то, что я сделал, чтобы избежать этого?

Спасибо!

+0

попробуйте git удаленное обновление -p –

+0

Что именно вы имеете в виду, говоря: «Я отбросил их»? –

+0

@ e.doroskevic Я отбросил их, и я не закончил внесенные изменения. –

ответ

0

На основании вашего ответа на мой комментарий выше.

Если вы побежали

git pull

Это так же, как делают

git fetch + git merge

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

Что касается pull request, это способ обмена изменениями, внесенными вами в проект. Это позволяет другим участникам просматривать вашу работу, делать предложения или даже сотрудничать с той функцией, которую вы разрабатываете. После того, как все довольны тем, что вы сделали, люди могут объединить эти изменения в производство; stopping pull не отменяет изменений, внесенных git pull в ваш местный репозиторий.

Если вы хотите вернуться к предыдущему фиксации, вы можете перейти к git. Например, git reflog + git reset --hard [email protected]{<number>} или git reset --hard HEAD^.

Надеюсь, это будет любая информация.

+0

Я сделал git pull i.e fetch + merge, как вы говорите, но я фактически не делал файлы, которые были изменены в * that * pull commit, но совершили некоторые другие изменения. Мы закончили переустановку ветки до этого, и я снова добавил свои изменения вручную и снова подтвердил. К счастью, это было не слишком сложно. У меня такое чувство, что другого пути не было? –

+0

@ m.y вам не нужно совершать после слияния. merge делает это автоматически. поэтому он называется фиксацией слияния –

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