457 Stimmen

Wie man den Ursprung aus dem Git-Repository entfernt

Grundlegende Frage: Wie trenne ich ein Git Repo von dem Ursprung, von dem es geklont wurde?

git branch -a zeigt:

* master
  remotes/origin/HEAD -> origin/master

und ich möchte jegliches Wissen über die Herkunft und die damit verbundenen Revisionen entfernen.

Längere Frage: Ich möchte ein bestehendes Subversion-Repository nehmen und daraus eine Reihe kleinerer Git-Repos erstellen. Jedes der neuen Git-Repos soll die gesamte Historie nur des betreffenden Zweigs enthalten. Ich kann das Repository auf den gewünschten Teilbaum beschränken:

git filter-branch --subdirectory-filter path/to/subtree HEAD

aber das resultierende Projektarchiv enthält immer noch alle Revisionen der jetzt verworfenen Teilbäume unter dem origin/master-Zweig.

Ich weiß, dass ich die -T-Flagge von git-svn verwenden könnte, um den entsprechenden Teilbaum des Subversion-Repos zu klonen. Ich bin mir nicht sicher, ob das effizienter wäre als die spätere Ausführung mehrerer Instanzen von git filter-branch --subdirectory-filter auf Kopien des Git-Repos, aber auf jeden Fall möchte ich die Verbindung mit dem Ursprung aufheben.

798voto

Amber Punkte 473552

Ziemlich einfach:

git remote rm origin

Was die filter-branch Frage - einfach hinzufügen --prune-empty zu Ihrem Filter-Branch-Befehl hinzufügen und es wird jede Revision entfernen, die keine Änderungen in Ihrem resultierenden Repo enthält:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD

74voto

Entfernen Sie den bestehenden Ursprung und fügen Sie einen neuen Ursprung zu Ihrem Projektverzeichnis hinzu

>$ git remote show origin

>$ git remote rm origin

>$ git add .

>$ git commit -m "First commit"

>$ git remote add origin Copied_origin_url

>$ git remote show origin

>$ git push origin master

1voto

oOo Punkte 327

In meinem Fall zeigte git branch -r weiterhin origin/master im lokalen Repository an (nachdem ich master in remote und local umbenannt hatte)

Damit ist das Problem gelöst:

E:\SourceCode\PascalCoinGit\PascalCoin>git remote prune origin
Pruning origin
URL: https://github.com/SkybuckFlying/PascalCoin
 * [pruned] origin/master

E:\SourceCode\PascalCoinGit\PascalCoin>

Befehl:

git remote show origin

(Schon mal gesehen, aber völlig vergessen)

Ergebnis:

E:\SourceCode\PascalCoinGit\PascalCoin>git remote show origin
* remote origin
  Fetch URL: https://github.com/SkybuckFlying/PascalCoin
  Push  URL: https://github.com/SkybuckFlying/PascalCoin
  HEAD branch: PascalCoinMaster
  Remote branches:
    GUIExperimentalBugFixes1       tracked
    GUIExperimentalBugFixes2       tracked
    GUIExperimentalBugFixes3       tracked
    GUIExperimentalBugFixes4       tracked
    GUIExperimentalBugFixes5       tracked
    MergeTest                      tracked
    PIP-0026Windows7Implementation tracked
    PascalCoinMaster               tracked
    SkybuckMaster                  tracked
    TestPascalCoinMaster           tracked
    refs/remotes/origin/master     stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    GUIExperimentalBugFixes1       merges with remote GUIExperimentalBugFixes1
    GUIExperimentalBugFixes2       merges with remote GUIExperimentalBugFixes2
    GUIExperimentalBugFixes4       merges with remote GUIExperimentalBugFixes4
    GUIExperimentalBugFixes5       merges with remote GUIExperimentalBugFixes5
    MergeTest                      merges with remote MergeTest
    PIP-0026Windows7Implementation merges with remote PIP-0026Windows7Implementation
    SkybuckMaster                  merges with remote SkybuckMaster
  Local refs configured for 'git push':
    GUIExperimentalBugFixes1       pushes to GUIExperimentalBugFixes1       (up to date)
    GUIExperimentalBugFixes2       pushes to GUIExperimentalBugFixes2       (up to date)
    GUIExperimentalBugFixes3       pushes to GUIExperimentalBugFixes3       (up to date)
    GUIExperimentalBugFixes4       pushes to GUIExperimentalBugFixes4       (up to date)
    GUIExperimentalBugFixes5       pushes to GUIExperimentalBugFixes5       (up to date)
    MergeTest                      pushes to MergeTest                      (up to date)
    PIP-0026Windows7Implementation pushes to PIP-0026Windows7Implementation (fast-forwardable)
    PascalCoinMaster               pushes to PascalCoinMaster               (up to date)
    SkybuckMaster                  pushes to SkybuckMaster                  (up to date)
    TestPascalCoinMaster           pushes to TestPascalCoinMaster           (up to date)

E:\SourceCode\PascalCoinGit\PascalCoin>

Ja, git branch -r zeigt jetzt, dass es weg ist!

-3voto

Verwenden Sie diese > git show origin > git remote rm origin

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