Ich habe mit Kommandos wie:git nicht mehr Geschichte neu zu schreiben
git filter-branch --index-filter \
'git ls-files -s | sed "s_subdir/__" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD
einen Verzeichnisbaum aus einem Unterverzeichnis „subdir“ auf die oberste Ebene zu bewegen. Um den Repo nach einem anderen und auch erfolgreichen Filterbaum aufzuräumen, ich habe versucht mit:
git filter-branch --tag-name-filter cat -- --all
git filter-branch --commit-filter 'git_commit_non_empty_tree "[email protected]"' HEAD
git reflog expire --all --expire=now
git gc --prune=now --aggressive
Dieser mischt ein paar Empfehlungen von hier herum. jedoch nach diesen Filter-Zweig nicht mehr tun funktioniert:
Rewrite 07436df7a2795910fb0b718d1a1b84e195cfabea (1/113) (0 seconds passed, remaining 0 predicted) mv: cannot stat ‘somepathhere/.git-rewrite/t/../index.new’: No such file or directory
index filter failed: git ls-files -s | sed "_subdir/__" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"
Ich bin bin nicht klar, warum diese oder die Befehle aufzuräumen des ‚Voodoo‘ sein sollte, habe ich dafür verantwortlich war. Offensichtlich fehlt etwas Wissen von meinem Git-Fu. Kann jemand vorschlagen, was das sein könnte?
Hat Commit '07436df7a2795910fb0b718d1a1b84e195cfabea' das Unterverzeichnis write? –
Der Befehl ist, den Inhalt des Repos von "Unterverzeichnis" in das Stammverzeichnis des Verzeichnisses zu verschieben. Das Root-Verzeichnis muss für jedes Commit vorhanden sein, wenn Sie das mit dem Unterverzeichnis "write" meinen. Ich glaube, das Unterverzeichnis existiert für alle Commits und ich habe mit --prune-empty umgeschrieben. Allerdings .git-rewrite existiert nicht und sollte natürlich auch nicht für irgendeinen commit sein. –
Eigentlich habe ich irgendwie ein Homophon benutzt; Ich meinte das "richtige" Unterverzeichnis. Existiert 'subdir /' im Baum des Commits, das er erwähnt? Was bekommst du, wenn du zur Kasse gehst 07436df; ls? (Es gibt eine Möglichkeit, den Baum nur für einen Commit zu betrachten, aber ich erinnere mich nicht, was es ist und habe im Moment keinen 'Git') –