2 Stimmen

Wie können Sie in Git Commits sehen und verwalten, die sich nicht in einem Branch befinden?

Ein Commit ist nicht notwendigerweise in einem Branch, wie kann man also diese Commits sehen und verwalten? Ist es außerdem möglich, diese Commits von Gitk aus zu betrachten?

Herzlichen Dank!

PS: Um die Dinge zu verdeutlichen, hier ein Beispiel:

git init
git commit
touch toto
git add toto
git commit -a
echo $RANDOM > toto
git commit -a
git checkout f798e54 #checkout initial commit
echo $RANDOM > toto
git commit -a #"untracked commit"
gitk --all
git branch
git log
git checkout master #back on the main branch
gitk --all #untracked commit is lost?
git log
git branch

Wie kann ich meine "nicht verfolgte Übertragung" zurückbekommen?

7voto

Greg Hewgill Punkte 882617

Diese Situation wird als abgetrennter KOPF . Normalerweise zeigen Werkzeuge (wie gitk) keine Commits an, die nicht über einen symbolischen Branch-Namen erreichbar sind.

Um Ihr Commit zurückzubekommen, können Sie git reflog um ein Protokoll aller jüngsten Aktivitäten anzuzeigen, einschließlich Ihres abgetrennten HEAD. Wenn Sie ihn finden, können Sie seine Commit-ID mit git checkout um dorthin zurückzukehren. Wenn Sie es für wertvoll halten, können Sie dem Zweig zu diesem Zeitpunkt einen Namen geben.

3voto

Könnte es sein, dass Sie über Folgendes sprechen git fsck --unreachable ?

2voto

Bombe Punkte 77831

git reflog zeigt Ihnen einen symbolischen Namen wie HEAD@{0} die Sie verwenden können, um auf die sonst unerreichbare Übergabe zuzugreifen. Sie könnten dann mit gitk --all HEAD@{0} um zu sehen, wo es in Ihrem Repository vorhanden ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X