Неможливо "зігріти скриньку" через конфлікт


19

У мене локальне сховище git і було кілька модифікованих файлів. Тоді мені потрібно було швидко створити виправлення чогось, щоб я

  • приховав мої зміни (git stash)
  • відредагований файл (файл vi)
  • скоєний (git počin)
  • popped stash (git stash pop)

Це призвело до конфлікту.

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

Якщо я спробую очистити зміни та повторно застосувати скриньку, відбувається те ж саме (конфлікт). Мене мало хвилює сторінка / search.php, але я хотів би отримати інші файли зі сховища.

Чи є спосіб перетворити скриньку в патч або просто отримати файли такими, якими вони були під час зберігання?

Відповіді:


20

Стек уже застосовано до інших файлів; це лише page/search.phpте, що вам доведеться об’єднати вручну. Після цього просто запустіть, git resetщоб зняти зміни, і продовжуйте хакнути - або git add ...виконувати.


Так. Саме так. Після того як я відновив патч з -p, я виявив, що інші файли вже оновлені.
romaninsh

3
дуже приємно, git stash popвирішіть свої конфлікти git add xтоді, git resetщоб потім вийти з інсценізації, Дякую!
Куанг

@Quang Повинно бути stash pop --continueпсевдонімом reset. :)
Kaz

12

Розв’язано з:

git stash show -p

Це врятувало мені день, =)
anatoly techtonik

Чи має -pзробити що - небудь тут?
Joost

2
показати? -p? що це робить? як "шоу" може бути пов'язане з вирішенням конфліктів?
Арнольд Роа

2
Ця команда показує зміни, внесені в скриньку, що дозволяють вам вручну злитися
Десмонд Вайндорф

1
Я знайшов git stash show -p | git apply && git stash dropу coderwall.com/p/anxp0g/force-a-git-stash-pop , і я намагаюся переконатися, що він спрацює, перш ніж запустити його. :-)
PatS

7

Після git stash popкоманди ви повинні вирішити конфлікт вручну, а потім зробити git stash dropвручну, як man git-stashпідказує.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.