documentazione completa è qui: https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
Supponiamo di avere un pronti contro termine che assomiglia a questo:
base - A - B - C - D (master)
\
\- X - Y - Z (myBranch)
Verificare lo stato di pronti contro termine:
> git checkout master
Already on 'master'
> git status ; git log --oneline
On branch master
nothing to commit, working directory clean
d9addce D
110a9ab C
5f3f8db B
0f26e69 A
e764ffa base
e per myBranch:
> git checkout myBranch
> git status ; git log --oneline
On branch myBranch
nothing to commit, working directory clean
3bc0d40 Z
917ac8d Y
3e65f72 X
5f3f8db B
0f26e69 A
e764ffa base
Supponiamo che tu sia su myBranch e vuoi solo le modifiche SINCE master. Utilizzare la versione a due punti:
> git log --oneline master..myBranch
3bc0d40 Z
917ac8d Y
3e65f72 X
La versione a tre punti dà tutte le modifiche dalla punta di maestro alla punta di myBranch. Si noti tuttavia che il comune di commit B non è incluso:
> git log --oneline master...myBranch
d9addce D
110a9ab C
3bc0d40 Z
917ac8d Y
3e65f72 X
NOTA BENE: git log
e git diff
comportarsi in modo diverso! Il comportamento non è esattamente di fronte, ma quasi:
> git diff master..myBranch
diff --git a/rev.txt b/rev.txt
index 1784810..e900b1c 100644
--- a/rev.txt
+++ b/rev.txt
@@ -1 +1 @@
-D
+Z
> git diff master...myBranch
diff --git a/rev.txt b/rev.txt
index 223b783..e900b1c 100644
--- a/rev.txt
+++ b/rev.txt
@@ -1 +1 @@
-B
+Z
Quindi, la versione a due punti indicano il diff dalla punta del master (cioè D) alla punta di myBranch (Z). La versione a tre punti mostra la differenza dalla base di myBranch (ad esempio B) alla punta di myBranch (Z).
fonte
2014-07-15 22:57:57
correlati: [Come ottenere i cambiamenti su un ramo in git] (http://stackoverflow.com/questions/53569/how- to-get-the-changes-on-a-branch-in-git) –