2016-08-03 34 views
0

Ein Commit wurde an den Zweig random-tests weitergeleitet, der versehentlich einige vertrauliche Informationen enthielt. Der Zweig wurde nicht wieder verwendet, also erzwinge ich nur das Löschen aus der Ferne und aus der Ferne, weil ich dachte, dass ich irgendwelche Commits in diesem Zweig löschen würde. Ich habe mich geirrt. Die Commits sind immer noch da, obwohl der Zweig selbst nicht mehr existiert.Git convert Commit auf Remote-Branch beim ersten Commit für einen gelöschten Zweig

Dies war das erste Commit für diesen Zweig, bevor es von master abgespalten wurde. Da der Zweig gelöscht wird und das erste Commit in diesem Zweig war, lösche ich dieses problematische Commit, ohne etwas anderes zu beeinflussen.

+0

Haben Sie Zugriff auf den Server mit BitBucket? Siehe https://confluence.atlassian.com/bitbucket/maintaining-a-git-repository-321848291.html – Owen

+0

Was meinst du mit "die Commits sind immer noch da"? – larsks

+1

Mit "Commits sind immer noch da", meinst du die "unerreichbar" Commits? Wenn ja, dann kannst du einfach [Müll sammeln] (http://stackoverflow.com/q/1904860/211627). – JDB

Antwort

0

Wenn Sie diese Commits immer noch sehen, dürfen sie nicht nur in der random-tests-Zweigstelle gewesen sein. Wie auch immer, hier ist eine Option:

hier Say ist Ihre Liste der letzten Commits:

  • schlecht begehen
  • gut begehen
  • gut begehen

die löschen 'schlecht begehen' aus Git history, Sie könnten git reset --hard HEAD~1 ausführen, was die Baumstruktur zurücksetzt und eine einzige Commit-Operation zurücksetzt und vergessen würde, dass die 'bad commit' jemals existiert hat.

Um dies zu tun, mit ein wenig mehr Vorsicht, Sie stattdessen git reset --soft HEAD~1 laufen konnte, tun ein git status sicher, gehen die richtigen Dateien sind unstaged und dann git reset --hard laufen zum nächsten Zurücksetzen begehen, welche die jüngste ‚wäre gut verpflichten.'

Vielleicht nicht die beste Lösung da draußen, aber es sollte funktionieren. Hoffe das hilft & macht Sinn!

UPDATE: Da Sie Git Geschichte geändert haben, werden Sie Probleme haben, wenn Sie dies auf Ihre Fernbedienung schieben, so müssen Sie eine git push origin branch -f machen, um es zu erzwingen.

+0

Ja, sie waren tatsächlich auf dem "zufälligen Tests" Zweig. Wenn ich in BitBucket gehe, zeigen sie keinen Zweig mehr. Der einzige Weg, wie ich sie sehen kann, ist direkt auf den Link in unserem Slack # commits-Kanal wie folgt zu gehen: https://bitbucket.org/ouraccount/app/commits/e4de5130xfc3e57b79111a87d336582a710bc04e – eComEvo

+0

Auch, wie kann ich 'git reset' ausführen wann kann ich den fraglichen Zweig nicht ziehen? Außerdem ist das Commit, das ich löschen möchte, das erste Commit auf dem nun gelöschten Zweig. – eComEvo