Git reset-Dateien mit typechange status
Beim suchen und ersetzen in einem großen repository, bekomme ich eine Reihe von Dateien mit einem typechange status. Diese sind meist symlinks.
Eher als
git checkout -- eachfile.name
Gibt es eine Möglichkeit zum reset nur typechange Dateien?
Du musst angemeldet sein, um einen Kommentar abzugeben.
awk '{print $3}'
sonst war es nicht immer der Dateiname.git status | grep typechange | awk '{print $3}'|xargs git checkout
Geschmack der vorhandenen Antwort, aber mir ist es lieber:
--porcelain
ist speziell für diese Art der Nutzung.Beachten Sie, dass das awk zu beantworten und die vorhandenen Antwort-kann gebrochen werden mit Dateinamen, die Leerzeichen enthalten, Zeilenwechsel, etc., in dem Fall können wir verwenden.
git status -z
ist das eine wirklich empfohlen, für diese Art von Einsatz und null beendet jeden Eintrag. perl --0
beschäftigt sich mit, dass-ne
Prozesse, die den angegebenen Befehl für jede Zeile (oder "entry" wirklich).$1
bezieht sich auf die erste capture-Gruppe hier, die den Dateinamen und den null-terminator.In den meisten Zeiten ist es besser, zu entfernen symlinks aus Ihrem repository. Wenn Sie arbeiten unter verschiedenen Betriebssystemen, es ist ein problem zu haben, die links in Ihrem repository.
Wenn Sie es zu entfernen und legen Sie es an einen neuen Speicherort Ihrer Datei geändert wird.
Einige Java-Git-client Probleme mit symlinks. Sie versuchen, Ihnen zu Folgen und erhalten Sie eine Fehlermeldung. Ich hatte dieses problem mit der Jenkins-client.
Hinzufügen, um alle symlinks zu den
.gitignore
führen Sie den folgenden Befehl unter Linuxfind /your/directory -type l >> .gitignore