Каково различие между pull и fetch в git?

Какие специально различия между деланием одного git pull и один git fetch?

49
задан 04.07.2017, 14:11
4 ответа

documentaciГіn :

git pull is shorthand for git fetch followed by git merge FETCH_HEAD.

или делая одну traducciГіn свободно:

git pull - один abreviaciГіn git fetch, продолженный git merge FETCH_HEAD.

А именно, git fetch приносит изменения, но оставляет в другом branch , до тех пор, пока он не становится git merge, чтобы приносить в branch локальные .

43
ответ дан 01.12.2019, 08:17
  • 1
    костлявая, что одинокий fetch загружает изменения, не делая им merge локально? – jpganz18 02.12.2015, 17:22
  • 2
    @jpganz18, правильный. – manix 02.12.2015, 17:22
  • 3
    я предполагаю, что он оставляет их в том же одиноком branch, чтобы давать им git add, нет? – jpganz18 02.12.2015, 17:31
  • 4
    #39; Что оставляет их в другом branch и # 39; и #191; в cu и # 225; l? – dwarandae 06.12.2015, 08:07
  • 5
    Он оставляет их в скрытом так называемом branch origin/master, если они хотят увидеть скрытые ветви, используйте: git branch -a, я это объясняю лучше в ответе, который оставляет тебя. - @dwarandae – Fili Santillán 06.12.2015, 09:59

Всегда в хранилище у тебя есть скрытая ветвь, которую ты можешь видеть, использовав git branch -a.

Эта скрытая ветвь origin/master.

Ты, использовав git fetch, ты загружаешь изменения удаленного хранилища в ветвь origin/master:

git fetch origin

Сейчас уже у тебя есть изменения в origin/master, но ты был бы должен перемещать их в ветвь master, для этого ты должен использовать:

git merge origin/master

Начиная с этого у тебя есть новые изменения в твоей ветви master и я заношу в список.

Здесь изображение, которое я сделал, чтобы объяснять эту часть: introducir la descripción de la imagen aquí

Использовав git pull ты сочетаешься git fetch+ git merge.

git pull origin степень магистра

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

47
ответ дан 01.12.2019, 08:17

Очень сжатый: с fetch только ты обсуждаешь изменения, которые есть в хранилище относительно твоей локальной копии; и с pull ты спускаешься изменения в твое помещение. Я думаю, что Sourcetree, сделав pull, делает раньше fetch tambiГ©n.

0
ответ дан 01.12.2019, 08:17

На самом деле git pull загрузи изменения определенной ветви и он обновляет ее против твоего локального хранилища.

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

git pull просто его один git fecth + git merge. Не использовать git pull если он в действительности сомнительный каких изменений они смогли быть принесенными из удаленного хранилища.

10
ответ дан 01.12.2019, 08:17
  • 1
    Также с git pull --no-commit возможно делать merge без commit – cnexans 15.03.2018, 20:21