Come posso verificare con la riga di comando l'ultimo hash di commit di un particolare ramo git?Comando per ottenere l'ultimo hash di commit git da un ramo
risposta
Usa git ls-remote git://github.com/<user>/<project>.git
.Per esempio, il mio progetto trac-backlog dà:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git
5d6a3c973c254378738bdbc85d72f14aefa316a0 HEAD
4652257768acef90b9af560295b02d0ac6e7702c refs/heads/0.1.x
35af07bc99c7527b84e11a8632bfb396823326f3 refs/heads/0.2.x
5d6a3c973c254378738bdbc85d72f14aefa316a0 refs/heads/master
520dcebff52506682d6822ade0188d4622eb41d1 refs/pull/11/head
6b2c1ed650a7ff693ecd8ab1cb5c124ba32866a2 refs/pull/11/merge
51088b60d66b68a565080eb56dbbc5f8c97c1400 refs/pull/12/head
127c468826c0c77e26a5da4d40ae3a61e00c0726 refs/pull/12/merge
2401b5537224fe4176f2a134ee93005a6263cf24 refs/pull/15/head
8aa9aedc0e3a0d43ddfeaf0b971d0ae3a23d57b3 refs/pull/15/merge
d96aed93c94f97d328fc57588e61a7ec52a05c69 refs/pull/7/head
f7c1e8dabdbeca9f9060de24da4560abc76e77cd refs/pull/7/merge
aa8a935f084a6e1c66aa939b47b9a5567c4e25f5 refs/pull/8/head
cd258b82cc499d84165ea8d7a23faa46f0f2f125 refs/pull/8/merge
c10a73a8b0c1809fcb3a1f49bdc1a6487927483d refs/tags/0.1.0
a39dad9a1268f7df256ba78f1166308563544af1 refs/tags/0.2.0
2d559cf785816afd69c3cb768413c4f6ca574708 refs/tags/0.2.1
434170523d5f8aad05dc5cf86c2a326908cf3f57 refs/tags/0.2.2
d2dfe40cb78ddc66e6865dcd2e76d6bc2291d44c refs/tags/0.3.0
9db35263a15dcdfbc19ed0a1f7a9e29a40507070 refs/tags/0.3.0^{}
Proprio grep per quello che vi serve e tagliare fuori:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git | \
grep refs/heads/master | cut -f 1
5d6a3c973c254378738bdbc85d72f14aefa316a0
In alternativa, è possibile specificare quali arbitri che si desidera sulla riga di comando e evitare il grep con:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git refs/heads/master | \
cut -f 1
5d6a3c973c254378738bdbc85d72f14aefa316a0
Nota: non deve essere il git://
URL, potrebbe essere https://
o [email protected]:
troppo.
Grazie jszakmeister, ha risolto il mio problema – mbdvg
Merita più amore. Funziona magnificamente – SuperFamousGuy
Provare a utilizzare git log -n 1
dopo aver eseguito un git checkout branchname
. Mostra l'hash del commit, l'autore, la data e il messaggio di commit per l'ultimo commit.
Eseguire prima un git pull origin/branchname
per assicurarsi che il repository locale corrisponda a monte.
Se forse volete solo per vedere un elenco dei commit la filiale locale si trova dietro sul ramo remota fare questo:
git fetch origin
git cherry localbranch remotebranch
Questo elenco di tutti gli hash dei commit che non avete ancora fuso nel tuo ramo locale.
il mio requisito è quello di controllare repository locali e repository github hash di commit sono uguali o no, come possiamo fare questo? – mbdvg
Per quanto ne so, non c'è modo in cui gli hash di commit potrebbero differire tra il repository locale e il repository remoto per gli stessi commit. Forse intendevi un elenco di commit che il tuo repository locale è mancante rispetto al repository remoto? –
Sì Rick van, c'è una discrepanza, quindi, voglio mostrare che c'è una differenza nel repository locale e github, quindi ho bisogno di un modo per scoprire – mbdvg
si può git fetch nameofremoterepo
, quindi git log
e personalmente, ho un alias gitlog
a git log --graph --oneline --pretty --decorate --all
. provare e vedere se si adatta
E git fetch non tira ancora le modifiche – nglinh
'--online 'è una scorciatoia per' --pretty = oneline --abbrev-commit'. Ma stai usando '--pretty', che ripristina' --pretty = oneline' ... Vorrei raccomandare 'git log --graph --abbrev-commit --decorate --all' invece. –
Fresco. Non me ne sono accorto. Grazie! – nglinh
In un commento che hai scritto
voglio dimostrare che c'è una differenza di repo locale e GitHub
Come già detto in un'altra risposta, prima devi fare un git fetch origin
. Poi, se il telecomando è davanti alla vostra filiale di corrente, è possibile elencare tutti i commit tra la filiale locale e il telecomando con
git log master..origin/master --stat
Se la vostra filiale locale è davanti:
git log origin/master..master --stat
--stat
mostra un elenco anche dei file modificati.
Se si desidera elencare in modo esplicito le aggiunte e le cancellazioni, utilizzare git diff
:
git diff master origin/master
git log -n 1 [branch_name]
branch_name
(possono essere filiale remota o locale) è facoltativo. Senza branch_name
, mostrerà l'ultimo commit sul ramo corrente.
Ad esempio:
git log -n 1
git log -n 1 origin/master
git log -n 1 some_local_branch
git log -n 1 --pretty=format:"%H" #To get only hash value of commit
git log -n 1 --pretty = formato: "% H" funziona perfettamente per me – Jaro
Ottieni hash breve: 'git rev-parse --short --verify my_branch' dalla domanda simile: http://stackoverflow.com/ a/949391/134761 – angularsen
Si noti che quando si utilizza l'opzione "git log -n 1 [branch_name]". -n restituisce solo una riga di registro ma l'ordine in cui viene restituito non è garantito. seguito è estratto dalla pagina man git-log
.....
.....
Commit Limiting
Besides specifying a range of commits that should be listed using the special notations explained in the description, additional commit limiting may be applied.
Using more options generally further limits the output (e.g. --since=<date1> limits to commits newer than <date1>, and using it with --grep=<pattern> further limits to commits whose log message has a line that matches <pattern>), unless otherwise noted.
Note that these are applied before commit ordering and formatting options, such as --reverse.
-<number>
-n <number>
.....
.....
- 1. git come trovare commit hash da dove il ramo ha avuto origine da
- 2. Rimozione di commit Git su un ramo
- 3. Git esclude un commit in un ramo
- 4. Git: ottenere modifiche da un altro ramo
- 5. Spostamento di commit da un ramo all'altro
- 6. Git: Unisci più commit da un ramo all'altro
- 7. Numero di commit sul ramo in git
- 8. Git: sposta il commit specifico su un altro ramo
- 9. Aggiunta git sottostruttura da un ramo
- 10. Git avviare il ramo da un altro ramo senza rilevamento
- 11. Come unire git commit nel ramo di sviluppo a un ramo di funzionalità
- 12. Blocco di un ramo Git
- 13. Ottieni hash del commit git più recente nel nodo
- 14. Comando Git per visualizzare ID commit HEAD?
- 15. Come creare il ramo da commit specifico in ramo diverso
- 16. Git: creato nuovo ramo da un ramo sbagliato
- 17. Unisci ramo GIT senza registro commit
- 18. Da master, commit in un altro ramo
- 19. Get git commit per nome di ramo \ id con git api
- 20. Perché il comando git per cambiare ramo chiamato "git checkout"?
- 21. Trova il ramo o rami di git dall'ID commit
- 22. git rebase un singolo commit
- 23. problemi nell'utilizzo di "git commit -a" comando
- 24. Scopri se esiste un commit particolare su un ramo git
- 25. Rimuovi le informazioni di commit da git commit
- 26. git commit fuso orario
- 27. git: modifiche al ramo da quando sono state create?
- 28. Hash per sottomodalità git auto-commit in super-progetto
- 29. git - sposta il "tag" del ramo su un altro commit?
- 30. recuperare e verifica un ramo git remota in un comando
Hai provato a usare 'git log -n 1' quando hai controllato che specifica ramo? –
log git fornisce hash repository locali, ma il repository git hub ha un nuovo hash. – mbdvg
'git log -n 1 [branch_name]' branch_name (può essere remoto o locale) è facoltativo. Senza branch_name mostrerà l'ultimo commit del ramo corrente. – codeit