Frage

Nach einem Git-Pull, seine Ausgabe gibt einen Überblick über die Änderungsgröße.

Wie kann ich alle oder einige der Dateien, die detaillierten Änderungen sehen?

Okay, hier ist meine Frage an Jefromi:

  1. Wie kann ich wissen, ob ich Meister zog? Alles, was ich tat, ist "git pull".

  2. Was bedeutet Master Punkt und was ist der Unterschied zwischen Master und HEAD, die zwei Standard-Köpfe von Git?

  3. Wie kann ich die detaillierte Änderung in einer bestimmten Datei sehen?

  4. Wie kann ich die Änderung in der Zusammenfassung Ausgabe vom letzten git pull wieder?

  5. Was ist Unterschied zwischen git diff und git whatchanged?

War es hilfreich?

Lösung

Angenommen, Sie zu meistern sind zu ziehen. Sie können master zur vorherige Position von master@{1} beziehen (oder sogar master@{10.minutes.ago}, siehe Angabe Überarbeitungen Abschnitt der git-rev-Parse-Mann ), so dass Sie Dinge wie

  • Sehen Sie alle Änderungen: git diff master@{1} master

  • Sehen Sie die Änderungen in einer Datei: git diff master@{1} master <file>

  • Sehen Sie alle Änderungen in einem bestimmten Verzeichnis: git diff master@{1} master <dir>

  • Sehen Sie die Zusammenfassung der Änderungen wieder: git diff --stat master@{1} master

Was Ihre Frage nach dem „Wie weiß ich, ob ich Meister bin“ ... na ja, Äste ist ein wichtiger Teil des Workflow-Git. Sie sollten immer bewusst sein, was Zweig du bist auf - wenn Sie Änderungen gezogen, wollen Sie sie auf dem rechten Zweig ziehen! Sie können durch die zur Zeit abgemeldeten ein, mit dem Befehl git branch eine Liste aller Branchen, die mit einem Stern sehen. Der Stromzweig Name ist auch mit dem Ausgang des git status gedruckt entlang. Ich empfehle, die man-Seiten von Befehlen Skimming zu verwenden -. Es ein guter Weg ist langsam etwas Wissen abholen zu

Und Ihre letzte Frage: HEAD ist der Name für den aktuell ausgecheckt Zweig. Sie können in der Tat HEAD und HEAD@{1} in diesem Zusammenhang als auch verwenden, aber es ist ein bisschen robuster die Zweige zu verwenden, da, wenn Sie einen anderen Zweig gehen und Check-out. HEAD ist nun, dass der zweite Zweig und HEAD@{1} ist jetzt master - nicht das, was Sie wollen

So zu speichern, die viele kleine Fragen zu stellen, sollten Sie vielleicht einen Blick auf ein Git-Tutorial haben. Es gibt eine Million auf dem Netz, zum Beispiel:

Andere Tipps

Sagen Sie tun, um eine git pull wie folgt aus:

$ git pull
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From git@dev.example.com:reponame
   a407564..9f52bed  branchname   -> origin/branchname
Updating a407564..9f52bed
Fast forward
 .../folder/filename          |  209 ++++++++-----
 .../folder2/filename2        |  120 +++++++++++---------
 2 files changed, 210 insertions(+), 119 deletions(-)

Sie können die diff von dem, was durch die Verwendung der Revisionsnummern geändert:

$ git diff a407564..9f52bed
  

1. Wie kann ich wissen, ob ich Meister zog? Alles, was ich tat, ist "git pull".

Der Befehl selbst funktioniert wie folgt:

git pull [options] [<repository> [<refspec>…]]

und pro Standard bezieht sich auf den aktuellen Zweig. Sie können Ihre Zweige unter Verwendung

prüfen
git branch -a

Dies wird Ihre lokalen und Remote-Niederlassungen wie Liste für beispiele so (ein --- als Teiler zwischen lokalen und Remote hinzugefügt, um es klar)

*master
foo
bar
baz
---
origin/HEAD -> origin/master
origin/deploy
origin/foo
origin/master
origin/bar
remote2/foo
remote2/baz

Wenn Sie dann einen Blick auf ein Remote-Repo nehmen, werden Sie sehen, was Sie sich beziehen:

git remote show origin

wird wie die folgende Liste:

* remote origin
  Fetch URL: ssh://git@git.example.com:12345/username/somerepo.git
  Push  URL: ssh://git@git.example.com:12345/username/somerepo.git
  HEAD branch: master
  Remote branches:
    foo    tracked
    master tracked
  Local refs configured for 'git push':
    foo    pushes to foo    (up to date)
    master pushes to master (fast-forwardable)

So ist es ganz einfach, sicher zu sein, wo man zieht aus und Push-to.

  

3. , wie die Detailänderung in einer bestimmten Datei sehen?

     

4. , wie wieder die Änderung der Zusammenfassung Ausgabe von im letzten git pull sehen?

Die einfachste und eleganteste Weg, (imo) ist:

git diff --stat master@{1}..master --dirstat=cumulative,files

Dies gibt Ihnen zwei Blöcke von Informationen über die Änderungen zwischen Ihrem letzten Zuge eines dem aktuellen Stand der Arbeit. Beispiel Ausgabe (Ich habe einen --- als Teiler zwischen --stat und --dirstat Ausgang, um es klar):

 mu-plugins/media_att_count.php                     |  0
 mu-plugins/phpinfo.php                             |  0
 mu-plugins/template_debug.php                      |  0
 themes/dev/archive.php                             |  0
 themes/dev/category.php                            | 42 ++++++++++++++++++
 .../page_templates/foo_template.php                |  0
 themes/dev/style.css                               |  0
 themes/dev/tag.php                                 | 44 +++++++++++++++++++
 themes/dev/taxonomy-post_format.php                | 41 +++++++++++++++++
 themes/dev/template_parts/bar_template.php         |  0
 themes/someproject/template_wrappers/loop_foo.php  | 51 ++++++++++++++++++++++
---
 11 files changed, 178 insertions(+)
  71.3% themes/dev/
  28.6% themes/someproject/template_wrappers/
 100.0% themes/
  27.2% mu-plugins/
   9.0% themes/dev/page_templates/
   9.0% themes/dev/template_parts/
  63.6% themes/dev/
   9.0% themes/someproject/template_wrappers/
  72.7% themes/

Diese Art der Art und Weise von hacky, aber es wird erlauben Sie grafische Werkzeuge wie gitk oder gitg oder git-gui zu verwenden:

git pull
git reset HEAD@{1}
gitg (or gitk or whatever tool you like)

Die Antwort mit den meisten upvotes bietet die beste Möglichkeit, das git-Tool, aber ich benutze diese Methode, weil ich dann Werkzeuge mit GUI nutzen kann, um die Änderungen zu sehen: P

Ich würde dann den zusätzlichen Schritt zur Herstellung eines git checkout . tun und dann wieder zu tun git pull so, dass ich ziehen und merge richtig, aber ich schätze die Möglichkeit, mit den zusätzlichen zwei Schritten Unterschiede in einer GUI genug, um viel zu untersuchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top