2012-04-07 14 views
15

Niedawno zrobiłem git stash, potem zrobił kilka prac na temat branży i zobowiązał go i dostał te błędy podczas próby zrobić git stash apply:Jak rozwiązać „usuwać/modyfikować” konflikt spowodowany przez „git stash zastosowanie”

CONFLICT (delete/modify): app/controllers/orders_controller.rb deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of app/controllers/orders_controller.rb left in tree. 
CONFLICT (content): Merge conflict in app/models/product.rb 

git status zawiera następujące informacje:

$ git status 
# On branch develop 
# Your branch is ahead of 'origin/develop' by 16 commits. 
# Unmerged paths: 
# (use "git reset HEAD <file>..." to unstage) 
# (use "git add/rm <file>..." as appropriate to mark resolution) 
# 
# deleted by us:  app/controllers/orders_controller.rb 
# both modified:  app/models/product.rb 

plik oznaczony „usuwać/modyfikować” był nowy plik, który dodałam i jeszcze nie popełnione przed stash.
Chciałbym wrócić do stanu, w którym byłem przed git stash - z niezatwierdzonymi zmianami lokalnymi. Czy możesz zasugerować, jak to zrobić?

Dzięki.

Odpowiedz

8

Umieszczasz skrytkę w innym stanie; stwierdza, że ​​ma jedno dodatkowe zatwierdzenie. Co gorsza, zatwierdzenie wprowadziło konflikty seryjne, jak wiecie.

Masz dwie opcje:

  1. pop że zapas na ostatni popełnić i rozwiązać konflikty
  2. pop zapas na wcześniejsze popełnić.

Wygląda na to, że # 2 jest tym, co chcesz zrobić. Użyj:

git stash branch new_branch [<stash>] # <stash> will be the last one if not provided. 
+0

dzięki. Właśnie zdałem sobie sprawę, że zrobiłem moje "zgłoszenie" do niewłaściwego oddziału. Czy istnieje sposób, aby cofnąć "zastosowanie stash" w tej branży? – stupakov

+0

Czy niewłaściwa gałąź była czysta, zanim zrobiłeś "zapas"? Czy zrobiliście "stash apply" lub "stack pop"? – GoZoner

+0

to było czyste, a ja zrobiłem "stash apply" – stupakov

0

Musisz rozwiązać konflikt! Po zaktualizowaniu ostatniego repozytorium oba pliki zostały zmienione, plik project.rb i orders_controller.rb został zmodyfikowany w najnowszym repozytorium. W tym samym czasie twoja lokalna zmiana (ukryta) również zmodyfikowała te dwa pliki, gdy zastosujesz je, wystąpi konflikt.

Musisz rozwiązać konflikt, aby zastosować zmianę lokalną.

W przypadku pierwszego pliku, orders_controller.rb , ostatnie repo zostało usunięte, czy chcesz je zachować, czy nie, kiedy wypchniesz późniejszy commit? Aby uzyskać drugi plik, project.rb , musisz rozwiązać konflikt w pliku

Powiązane problemy