Kann git leere Versionen einiger Dateien festschreiben? Der Fall ist, dass ich neue (nicht geordnete) Dateien zuerst als leere Dateien hinzugefügt und festgeschrieben werden muss, um ihre Inhalte als neu und zu überprüfen (die vollständigen, nicht aufgezeichneten Dateien sollten nicht hinzugefügt werden zum Index; git diff
sollte die neu hinzugefügten Inhalte anzeigen, indem die Datei mit ihrer festgeschriebenen leeren Version verglichen wird).Kann git "leere Versionen" neuer Dateien festschreiben?
Es gibt git add -N file…
, die file
mit einem leeren Inhalt in dem Index setzt, aber das sagt nur, dass file
wird hinzugefügt werden und git commit
beklagt, dass die Datei nicht hinzugefügt wurde. Die Sache ist, dass die aktuelle, nicht leere Version nicht das ist, was hinzugefügt werden muss, sondern nur eine leere Version der neuen Datei.
Gibt es eine Möglichkeit, dies zu tun?
PS: Diese Frage wird im Kontext eines Programms gestellt, das automatisch Dateien zu einem Git-Repository hinzufügt (mein Programm folgt dem Code, den Schüler schreiben). Nicht freigegebener Code ist Code, den ich noch genehmigen muss. Daher sollte der Zustand, in dem ein von einem Studenten erstelltes Programm gestartet wird, der leere-Status sein, obwohl mein Programm gerade ein neues, nicht leeres Programm in ihrem Basisverzeichnis gefunden hat; Dies geschieht, indem automatisch eine neue, leere Version einer neuen Student-Programmdatei in einem Git-Repository übergeben wird. Daher erscheinen neue Codezeilen, die sie schreiben, als neu hinzugefügte Inhalte, verglichen mit der letzten festgeschriebenen Git-Revision.
ich ehrlich gesagt nicht Ihr Problem verstehen. 'Berühre leere Datei && git addiere leere Datei && git commit' funktioniert für mich. – joschi
'git diff' funktioniert perfekt für eine neu erstellte Datei. Wenn Sie einen Zustand unterscheiden, in dem die Datei nicht mit einem Diff existiert, wenn sie Inhalt hat, werden Sie alle Zeilen sehen, die genau so diff sind wie gegen eine leere Datei. (Nur die Modelines sind anders.) – Cascabel
@joschi: Das Problem ist, dass ich viele neue, * nicht leere * Dateien habe. Die Verwendung von Svens Ansatz Nr. 1 ist umständlicher als die Verwendung seines ordentlichen Git-Installations-Ansatzes. – EOL