Подтвердить что ты не робот

Есть ли в Git опция "git pull --dry-run"?

Есть ли такая вещь, как git pull --dry-run чтобы увидеть, как вещи будут объединены до того, как они испортят мое рабочее дерево?

Прямо сейчас я делаю:

git fetch origin && git merge --no-commit --no-ff

На странице руководства я не увидел ничего похожего на "git-pull".

Чтобы прояснить ситуацию, мне просто нужен скрипт Ant для развертывания, чтобы увидеть, есть ли конфликты при выполнении git pull, затем вернуться к выходу из сборки, завершить неудачно развертывание и оставить дерево каталогов таким же, git pull оно было до git pull.

4b9b3361

Ответ 1

Я всегда полагался на присущие Git способности вернуть меня в случае неудачного слияния.

Чтобы оценить, как может произойти слияние, вы можете начать, как вы это сделали с:

$ git fetch origin branch  # Fetch changes, but don't merge
$ git diff HEAD..origin/branch # Diff your current head to the fetched commit

... personal judgement of potential merge conflicts ...

$ git merge origin/branch # merge with the fetched commit

Если все пошло не так, как планировалось, посмотрите свой reflog и вернитесь к желаемому состоянию:

$ git reflog
...
abc987  [email protected]{0}: merge activity
b58aae8 [email protected]{1}: fetch origin/branch
8f3a362 [email protected]{2}: activity before the fetch
...
$ git reset --hard HEAD{2}

Ответ 2

Сначала вам нужно получить первую версию локального источника/мастера

git fetch origin

Затем вы можете сделать:

git diff --name-only origin/master

Перечислит файлы, которые были изменены.

git diff origin/master directory_foo/file_bar.m

Будет отображаться строка за строкой diff файла directory_foo/file_bar.m.

Ответ 3

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

Ответ 4

# fetch new commits from origin
$ git fetch

# check what are the differences and judge if safe to apply
$ git diff origin/master

# actually merge the fetched commits 
$ git pull

Ответ 5

Так как pulling подразумевает слияние, я бы пошел с запуском git merge --abort, если ваш script обнаружил, что возникли конфликты и слияние не удалось.