2014-10-30 6 views
13

commit Ich möchte alle Dateien außer für eine Datei festschreiben. Kann ich das mit dem GitHub für Windows-Client tun, oder muss ich die Befehlszeile verwenden? Wenn ich die Befehlszeile verwenden muss, wie verwende ich sie?Wie alle Datei außer einem in GitHub für Windows

+0

Ja, können Sie es über den Client –

+0

http://stackoverflow.com/questions/4475457/add-all tun -files-to-a-commit-außer einer einzigen Datei Bitte überprüfen Sie diesen Link. Dies könnte Ihnen helfen. – user3269886

+0

Vielen Dank für den Vorschlag, aber der Befehl entfernt alle geänderten Dateien. Ich möchte nur alle außer einer Datei festschreiben und Datei sollte Änderungen haben. –

Antwort

23

Soweit ich weiß, ist dies ohne die git shell/command line nicht möglich. In der Git Shell haben Sie mehrere Möglichkeiten. Alle von ihnen ergeben ein etwas anderes Ergebnis.

  1. Wenn Sie die Datei nur für eine kurze Zeit ausschließen wollen (vielleicht eine Festschreibung) und es in einem zukünftigen hinzufügen begehen Sie die folgenden Befehle ausführen:

    git add . 
    git reset filename 
    git commit -m "commit message" 
    

    Der erste Befehl fügt alle Dateien zum Staging-Bereich. Then the second command removes the one file from the staging area. This means the file is not added in the commit but the changes to it are preserved on your local drive.

  2. Wenn die Datei bereits im Repository begangen wird, sondern nur sporadisch weitere Änderungen der Datei begehen möchten, können Sie git update-index --assume-unchanged auf diese Weise verwenden können:

    `git update-index --assume-unchanged filename` 
    

    Wenn Sie dann die Datei lokal ändern Es wird nicht zum Staging-Bereich hinzugefügt, wenn Sie etwas ausführen, um alle Dateien hinzuzufügen, z. B. git add .. When, after some time, you want to commit changes to the file again, you can run git update-index --no-assume-unchanged filename to stop ignoring the changes.

  3. Sie können die Datei .gitignore verwenden, wenn Sie eine Datei überhaupt nicht nachverfolgen möchten. To ignore a file named filename you create, or edit, a file called .gitignore. Put filename on a line of its own to ignore that file. Jetzt wird die Datei nicht zum Staging-Bereich hinzugefügt, wenn Sie git add . ausführen. Anmerkung: Wenn die Datei bereits eingecheckt ist, müssen Sie sie aus dem Repository entfernen, um sie tatsächlich zu ignorieren. Führen Sie die folgenden genau das zu tun:

    `git rm --cached filename` 
    

    The --cached option specifies that the file should only be removed from the index. die lokale Datei, ob verändert oder nicht, wird die gleiche bleiben. Sie können die Datei .gitignore hinzufügen und festschreiben, damit die Datei auch auf anderen Computern mit demselben Repository ignoriert wird.

  4. Wenn Sie eine nicht verfolgte Datei ignorieren möchten, aber dieses Ignorieren nicht mit anderen Repository-Mitarbeitern teilen möchten, können Sie die Namen ignorierter Dateien in die Datei .git/info/exclude einfügen. Das Verzeichnis .git ist normalerweise verborgen, aber Sie können es sichtbar machen, indem Sie die Ordneroptionen ändern. Wie bei der Datei .gitignore müssen Sie git rm --cached filename ausführen, wenn die Datei bereits durch ein vorheriges Commit eingecheckt wurde.

Einige Anmerkungen:

  • ändern filename in den eigentlichen Namen der Datei, die Sie ausschließen möchten.
  • Anstatt eine einzelne Datei auszuschließen, können Sie auch ein vollständiges Verzeichnis ausschließen. Sie können das tun, indem Sie einfach den Verzeichnisnamen anstelle von filename ersetzen.
  • Eine einfache Möglichkeit, eine Git Shell zu starten, besteht darin, GitHub für Windows zu starten. Klicken Sie mit der rechten Maustaste auf das Projekt, in dem Sie die Datei ausschließen/ignorieren möchten, und wählen Sie die Option Open in Git Shell. Jetzt befinden Sie sich im Stammverzeichnis des Git-Repositorys und Sie können mit der Ausführung der Befehle beginnen, die in dieser Antwort angezeigt und beschrieben werden.
+0

Danke. Es funktionierte. –

+1

Sehr gute Information. Vielen Dank! – adelineu

0

Ich würde folgendes tun:

git add . 
git checkout filename 
git commit -m "commit message" 

Die erste Zeile alle Dateien auf der Liste hinzufügt, und die zweite Zeile entfernt die Sie Datei angeben, wobei „Dateiname“ der Name der Datei sein sollte Sie wollen nicht in Ihrem Engagement.

Oder

git checkout filename 
git commit -am "commit message" 

git commit -am Dateien fügt hinzu und macht die Nachricht zur gleichen Zeit begehen.

Und wenn Sie die Änderungen entfernen, müssen Sie in der letzten Datei gemacht:

git stash -u 
Verwandte Themen