Mam następujący działający stan drzewa
$ git status foo/bar.txt
# On branch master
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# deleted by us: foo/bar.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
Plik już foo/bar.txt
tam jest i chcę go ponownie przywrócić do „niezmienionego stanu” (podobnie do „svn revert”):
$ git checkout HEAD foo/bar.txt
error: path 'foo/bar.txt' is unmerged
$ git reset HEAD foo/bar.txt
Unstaged changes after reset:
M foo/bar.txt
Teraz robi się mylące:
$ git status foo/bar.txt
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: foo/bar.txt
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: foo/bar.txt
#
Ten sam plik w obu sekcjach, nowy i zmodyfikowany? Co powinienem zrobić?
git
git-checkout
git-reset
mklhmnn
źródło
źródło
Odpowiedzi:
Zrobiłeś to niewłaściwie. Musisz najpierw zresetować, usunąć scenę z pliku, a następnie wyewidencjonować i przywrócić lokalne zmiany.
Spróbuj tego:
źródło
To działało idealnie dla mnie:
źródło
// Uwaga kropka (.) Na końcu. I wszystko będzie dobrze
źródło
próbowałeś tego? (bez słowa kluczowego HEAD)
Zwykle przywracam zmiany w ten sposób.
źródło
checkout
scalenia:$ git co path/to/file
= wynik =>error: path 'path/to/file' is unmerged
=> więc najpierw uruchom:,$ git reset path/to/file
a następniegit checkout path/to/file
powinno działać.Uważam, że git skrytka jest bardzo przydatna do czasowej obsługi wszystkich „brudnych” stanów.
źródło