Ich habe ein Workflow-Muster, das ziemlich oft auftaucht, und ich habe mich gefragt, wie ich das in Git erreichen kann.
Ich habe eine Datei, die sich im Laufe der Zeit geändert hat. Ich habe möglicherweise eine Methode gelöscht oder auf irgendeine Weise geändert, aber jetzt ist mir klar, dass ein Teil des Codes nützlich sein könnte.
Wie kann ich den Verlauf einzelner Dateien überprüfen und diese zuvor festgeschriebene Datei auschecken und vergleichen?
Hast du es mal mit einem einfachen versucht git log -- <filepath>? Könnte ausreichen, je nachdem, wie komplex Ihre Suche ist.
– Romain Waleri
4. Dezember 2018 um 11:16 Uhr
Ja, ich kann das Protokoll sehen, aber ich möchte nur einen kurzen Blick auf diese Datei zum Beispiel bei Commit dea11dfddc6512c0c09eabf20622ac5f9df8c731 werfen
– Alexander Davidson
4. Dezember 2018 um 11:19 Uhr
Ach ^^ So könnte man das auch machen git checkout dea11df -- <filepath>. Stellen Sie jedoch sicher, dass Sie alle ausstehenden Änderungen an der Datei vorher festschreiben. Dann bringen Sie Ihre Datei bei Bedarf mit a wieder in ihren aktuellen Zustand git checkout -- <filepath> danach.
– Romain Waleri
4. Dezember 2018 um 11:23 Uhr
stackoverflow.com/search?q=%5Bgit-log%5D+Datei
– promov
4. Dezember 2018 um 15:19 Uhr
Beachten Sie, dass Git dies technisch gesehen nicht tut verfügen über “Dokumentenhistorie”. Es hat nur “Geschichte”, die wirklich “alle Commits” ist. Jeder Commit ist ein vollständiger Snapshot. Wenn Sie also Git nach „dem Verlauf von Datei X“ fragen, geht Git den Commit-Graph rückwärts, ein Commit-Paar nach dem anderen, und vergleicht die beiden Snapshots. Wenn Snapshot $OLDER vs. Snapshot $NEWER hat Unterschiede in X, dann verkündet Git, dass $NEWER X „geändert“ hat.
– Torek
4. Dezember 2018 um 16:54 Uhr
Wenn Sie sich den einfachen Verlauf der Datei ansehen möchten (dh welche Commits die Datei geändert haben):
git log (filename)
zum Beispiel git log testdir/test.py
Für den detaillierten Verlauf einer Datei (einschließlich Diff) fügen Sie -p (Abkürzung für –patch) hinzu:
git log -p (filename)
git log --patch (filename)
Zum Anzeigen von Dateiänderungen in einem Commit:
git show (SHA Hash) (filename)
Sie können eine git diff für eine bestimmte Datei: https://git-scm.com/docs/git-diff
Obwohl es viel einfacher ist, einige IDE- (IntelliJ, Eclipse usw.) oder Git-GUI-Tools (gitk, SourceTree, Gitkraken) zu verwenden, führen Sie auch den Unterschied/Vergleich zwischen Dateiversionen durch.
Ich habe dies auch eingegeben, Bitbucket hat auch einen sehr einfachen Datei-Diff-Watcher!
– Wimanicesir
4. Dezember 2018 um 11:19 Uhr
9977000cookie-checkGit – Verlauf einer Datei [duplicate]yes
Hast du es mal mit einem einfachen versucht
git log -- <filepath>
? Könnte ausreichen, je nachdem, wie komplex Ihre Suche ist.– Romain Waleri
4. Dezember 2018 um 11:16 Uhr
Ja, ich kann das Protokoll sehen, aber ich möchte nur einen kurzen Blick auf diese Datei zum Beispiel bei Commit dea11dfddc6512c0c09eabf20622ac5f9df8c731 werfen
– Alexander Davidson
4. Dezember 2018 um 11:19 Uhr
Ach ^^ So könnte man das auch machen
git checkout dea11df -- <filepath>
. Stellen Sie jedoch sicher, dass Sie alle ausstehenden Änderungen an der Datei vorher festschreiben. Dann bringen Sie Ihre Datei bei Bedarf mit a wieder in ihren aktuellen Zustandgit checkout -- <filepath>
danach.– Romain Waleri
4. Dezember 2018 um 11:23 Uhr
stackoverflow.com/search?q=%5Bgit-log%5D+Datei
– promov
4. Dezember 2018 um 15:19 Uhr
Beachten Sie, dass Git dies technisch gesehen nicht tut verfügen über “Dokumentenhistorie”. Es hat nur “Geschichte”, die wirklich “alle Commits” ist. Jeder Commit ist ein vollständiger Snapshot. Wenn Sie also Git nach „dem Verlauf von Datei X“ fragen, geht Git den Commit-Graph rückwärts, ein Commit-Paar nach dem anderen, und vergleicht die beiden Snapshots. Wenn Snapshot $OLDER vs. Snapshot $NEWER hat Unterschiede in X, dann verkündet Git, dass $NEWER X „geändert“ hat.
– Torek
4. Dezember 2018 um 16:54 Uhr