Beheben durch Nachverfolgen der Datei und Best Practices
Manchmal ist die nicht verfolgte Datei nicht entbehrlich; es handelt sich um Arbeit, die Sie behalten möchten. In diesem Fall ist der richtige Ansatz, die Datei in Git's Nachverfolgungssystem aufzunehmen, indem Sie sie committen. Dieser Abschnitt behandelt auch Best Practices, um zu verhindern, dass dieser Fehler überhaupt auftritt.
Zuerst kehren wir zum main-Branch zurück und erstellen unsere widersprüchliche Datei neu.
cd ~/project/git-checkout-demo
git checkout main
echo "## My local changes to feature documentation" > feature.md
Methode: Die Datei nachverfolgen
Wenn die nicht verfolgte Datei wichtig ist, sollten Sie sie in den aktuellen Branch committen.
-
Fügen Sie die Datei zum Staging-Bereich hinzu.
git add feature.md
-
Comitten Sie die gestagte Datei.
git commit -m "Add local version of feature.md"
Nachdem Ihre Änderungen nun sicher im main-Branch committet sind, kann Git den Wechsel handhaben. Wenn Sie feature-branch auschecken, ersetzt Git die Arbeitsbereichdatei einfach durch die Version aus diesem Branch.
git checkout feature-branch
Der Checkout ist erfolgreich. Ihre committeten Änderungen sind sicher in der Historie des main-Branches.
Best Practice: .gitignore verwenden
Um zu verhindern, dass bestimmte Dateien (wie Protokolle, Build-Artefakte oder Umgebungsdateien) jemals nachverfolgt werden, sollten Sie eine .gitignore-Datei verwenden. Git ignoriert alle Dateien oder Verzeichnisse, die den Mustern in .gitignore entsprechen, und verhindert so, dass sie zu widersprüchlichen, nicht verfolgten Dateien werden.
Erstellen wir eine .gitignore-Datei, um alle .log-Dateien zu ignorieren.
## Switch back to main to add the .gitignore file
git checkout main
## Create the .gitignore file
echo "*.log" > .gitignore
Erstellen Sie nun eine Log-Datei.
touch app.log
Überprüfen Sie den Status.
git status
Beachten Sie, dass app.log nicht als nicht verfolgte Datei erscheint. Die .gitignore-Datei selbst ist jedoch nicht verfolgt.
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)
Sie sollten Ihre .gitignore-Datei immer committen, damit die Regeln projektübergreifend geteilt werden.
git add .gitignore
git commit -m "Add .gitignore to ignore log files"
Durch häufiges Committen und effektive Nutzung von .gitignore können Sie die Wahrscheinlichkeit, diesen Checkout-Fehler zu erhalten, erheblich reduzieren.