Wie aktualisiert man eine Datei im Remote Repo, ohne den Repo zuerst zu klonen?

9

Gibt es eine Möglichkeit, einen Commit auf einen Remote-Git-Repo zu übertragen, ohne zuerst einen lokalen Klon dieses Repos zu erstellen?

Ich habe eine gültige URL für den Remote-Repo, ich kenne den Pfad der Datei, und alles, was ich tun möchte, ist eine aktualisierte Version der Datei auf den Master zu schieben. Im Idealfall möchte ich, dass dies mit jeder gültigen Remote-Repo-URL funktioniert, aber es wäre immer noch hilfreich, wenn es nur mit https-basierten Git-URLs funktioniert.

Ich schätze, das ist unmöglich, da es anscheinend nicht möglich ist, eine einzige Datei ohne Klonen im allgemeinen Fall zu erhalten, entsprechend der Antwort Wie" git show "auf einem Remote-Repo? . Aber ich hoffe, es gibt eine Problemumgehung, die einige der niedrigeren git-Befehle verwendet.

    
algal 18.04.2013, 08:10
quelle

4 Antworten

7

Unmöglich. Aber da ein potenzielles Commit nur ein einziges Commit als sein Elternteil hätte, ist es möglich, das sogenannte "seichte Klonen" zu verwenden und nur das Tip-Commit des benötigten Zweiges zu holen. Dies bringt nur eine minimale Anzahl von Objekten von der Fernbedienung. Suchen Sie nach der Befehlszeilenoption --depth von git clone .

    
kostix 18.04.2013, 09:20
quelle
3

Nein, das ist nicht möglich. Sie müssen das gesamte Repository klonen, damit dies funktioniert. Git muss über alle Dateien und .git Bescheid wissen, um seine Aufgabe korrekt zu erledigen. Aus diesem Grund können Sie nicht beliebige Dateien einfach so verschieben.

    
Oleksi 18.04.2013 08:13
quelle
1

@algal, für Ihren speziellen Anwendungsfall können Sie möglicherweise ein Submodul verwenden ( Ссылка ). Sie könnten klonen und sich an das Submodul binden, ohne das "Supermodul" zu klonen, das den von Ihnen erwähnten "massiven" Code enthalten könnte. Das Supermodul könnte auf das Submodul für die von Ihnen erwähnte Konfigurationsinformation verweisen.

    
kernelsmith 11.01.2014 00:34
quelle
0

Ja, Sie können eine neue Version mit tagging

pushen

Folge diesen Schritten

in Ihrem neuen Projektstammverzeichnis

  1. git init
  2. git remote add origin [email protected]:yourusername/yourpoject
  3. git tag -a v2.0 -m 'version 2.0'
  4. git add .
  5. git commit -m "New Version 2.0 :rocket:"
  6. git push -u origin v2.0

Sie haben jetzt einen neuen Zweig namens v2.0 mit Ihrem neuen Projekt und dein Master-Zweig bleibt unberührt. Danach können Sie Ihren Standard-Zweig in Ihren github-Projekteinstellungen ändern.

    
Fatih Akgun 29.09.2017 03:20
quelle

Tags und Links