Chcę, aby mercurial usunął kilka plików z bieżącego stanu repozytorium. Chcę jednak, aby pliki istniały we wcześniejszej historii.
Jak zrobić forget
i remove
różnią się i mogą robić to, co chcę?
version-control
mercurial
Paul Nathan
źródło
źródło
Odpowiedzi:
„
hg forget
” to tylko skrót od „hg remove -Af
”. Z pomocy „hg remove
”:Konkluzja: „
remove
” usuwa plik z kopii roboczej na dysku (chyba że używasz-Af
), a „forget
” nie.źródło
Najlepszym sposobem, aby umieścić to, że
hg forget
jest identyczny dohg remove
except że pozostawia za sobą pliki w swojej kopii roboczej. Pliki są pozostawione jako pliki nieśledzone i można je teraz opcjonalnie zignorować za pomocą wzorca w.hgignore
.Innymi słowy, nie umiem powiedzieć, czy używałeś,
hg forget
czyhg remove
kiedy cię odciągam. Plik, który został uruchomionyhg forget
na zostanie usunięte podczas aktualizacji do tej changeset - tak jakbyś używałhg remove
zamiast.źródło
Z dokumentacji można najwyraźniej użyć dowolnego polecenia, aby zachować plik w historii projektu. Wygląda na to, że chcesz usunąć, ponieważ usuwa również plik z katalogu roboczego.
Z książki Mercurial na http://hgbook.red-bean.com/read/ :
Strona podręcznika hg (1) mówi o zapomnieniu:
I chodzi o usunięcie:
źródło
Jeśli użyjesz
"hg remove b"
pliku przeciwko statusowi „A”, co oznacza, że został dodany, ale nie został zatwierdzony, Mercurial odpowie:Ta odpowiedź jest bardzo wyraźnym wyjaśnieniem różnicy między usunięciem a zapomnieniem.
Rozumiem, że
"hg forget"
chodzi o cofnięcie dodanego, ale niezaakceptowanego pliku, aby nie był śledzony przez kontrolę wersji; podczas"hg remove"
służy do wyjęcia zatwierdzonego pliku z kontroli wersji.Ten wątek ma na przykład używając
hg remove
przeciwko plików 7 różnych rodzajów statusu.źródło
źródło