2017-02-07 3 views
1

Ich bin mir bewusst, dass diese Frage schon einmal gestellt wurde, aber ich bin immer noch verwirrt über die genauen Schritte, die ich ergreifen muss.Datei von Github und Geschichte entfernen

Vor ein paar Monaten habe ich eine Datei, die vertrauliche Informationen in einem öffentlichen Repository (das ich besitze) auf Github gespeichert. Ich muss jetzt diese Datei zusammen mit jeder Spur davon entfernen.

Insbesondere ist es eine web.config Datei, die einige db-Details enthält. Ich muss die Verbindungszeichenfolge entfernen, aber ich bin froh, die ganze Datei zu löschen und sie bei Bedarf wieder hinzuzufügen.

Es gab viele Commits seit.

Ich schaute auf BFG, die klingt wie das richtige Werkzeug für den Job, aber das hat nicht funktioniert - möglicherweise habe ich einen Fehler gemacht.

Schritte:

git clone --mirror git://example.com/my-repo.git 
bfg-1.12.15.jar --delete-files web.config my-repo.git 
cd my-repo.git 
git reflog expire --expire=now --all && git gc --prune=now --aggressive 

git push 

Ausgang:

Counting objects: 1064, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (1058/1058), done. 
Writing objects: 100% (1064/1064), done. 
Total 1064 (delta 775), reused 289 (delta 0) 

Everything up-to-date 

Die Datei bleibt nach wie vor, was genau muss ich tun, um diese web.config Datei aus dem Repository zu entfernen?

aktualisieren

Ok, damit es die web.config zu entfernen und dann erneut den Befehl vorgeschlagen wurde:

rm web.config 
git commit -am "removed web config" 
git push 

und dann habe ich wieder liefen alle Befehle oben und ich bin bekommen:

Using repo : xxx.git 

Found 246 objects to protect 
Found 2 commit-pointing refs : HEAD, refs/heads/master 

Protected commits 
----------------- 

These are your protected commits, and so their contents will NOT be altered: 

* commit 1f4ad898 (protected by 'HEAD') 

Cleaning 
-------- 

Found 114 commits 
Cleaning commits:  100% (114/114) 
Cleaning commits completed in 93 ms. 

BFG aborting: No refs to update - no dirty commits found?? 

Update 2

Stellt sich heraus, BFG funktioniert gut und ich war versehentlich web.config Kleinbuchstaben und nicht die tatsächliche Web.config eingeben. Auf jeden Fall hat es mein Problem sortiert :)

+0

Ist es ein Tippfehler oder versuchen Sie, das bfg jar selbst auszuführen, als wäre es ein Befehl in Ihrer Shell? Sollte das nicht 'java -jar path/to/bfg.jar ...' sein? –

+0

@MarkAdelsberger Tippfehler, aktualisiert – boywonder

+0

Befindet sich 'web.config' im Stammverzeichnis Ihres Repositorys oder in einem Unterverzeichnis? Möglicherweise müssen Sie die Unterverzeichnisse in den Pfad einfügen, den Sie an "bfg" übergeben. – jwodder

Antwort

1

Die Schritte, die Sie beschrieben, scheinen wie die richtige Methode, das BFG-Tool zu verwenden (als basierend auf ihrer Dokumentation).

Beachten Sie, dass der BFG Repo Cleaner nur den Verlauf Ihres Repositorys beeinflusst und nicht das letzte Commit in Ihrem Commit-Verlauf berührt. Mit anderen Worten, die Spitze Ihres Zweigs muss zuerst bereinigt werden, und das BFG-Tool wird danach ausgeführt.

Je nachdem, was Ihr aktueller Status ist, bereinigen Sie zuerst den aktuellen Status der Dinge mit oder git rm web.config, bestätigen Sie Ihre Änderungen, schieben Sie alles hoch und führen Sie dann die BFG aus, um den Verlauf zu bereinigen.

+0

Entfernen der Datei in einem neuen Commit mit 'git rm' vor der Verwendung von BFG arbeitete für mich –

0

cd in das Verzeichnis und

git rm web.config 

ls zu überprüfen, ob "web.config" entfernt wurde

git status 

Sie benötigen ziehen Update von Repo

Verwandte Themen