Ik zou graag alle stashes in git log
output willen zien. Weet iemand of er een manier is om dat te doen?
Bewerken: ik wil alle commits loggen. Ik gebruik het commando
git log --date-order --all
Maar het retourneert alleen de bovenste voorraad. Ik zou graag commits zien die andere stashes vertegenwoordigen.
Antwoord 1, autoriteit 100%
Je kunt al je stashes tonen met git stash list
. Misschien kun je een script schrijven om zowel git stash list
als git log
te tonen en het te gebruiken met een alias.
Antwoord 2, autoriteit 86%
Ik kwam hier om hetzelfde te doen als @jbialobr, ik deed wat meer onderzoek na het lezen van de vorige antwoorden en kwam tot het onderstaande.
Het antwoord van @msmt geeft je een logboek van de stashes, en je kunt dit gebruiken om de hashes in het git-logboek te gebruiken.
git reflog show --format="%h" stash
geeft je alleen de hashes van alle stashes die vervolgens kunnen worden doorgegeven aan een git log-commando zoals
git log --date-order --all $(git reflog show --format="%h" stash)
Het volledige commando dat ik nu persoonlijk gebruik is
git log --oneline --graph --decorate --all $(git reflog show --format="%h" stash)
Getest op git versie 2.5.1 op centos
Antwoord 3, autoriteit 37%
Ik weet niet zeker wat je bedoelt. stash is een branch en je kunt alle stashes weergeven met git log -g stash
.
Antwoord 4, autoriteit 14%
Een andere gemakkelijke manier om dit te doen is git reflog show stash
Antwoord 5, autoriteit 4%
Volledige opdracht:
git log --oneline --graph --all $(git stash list --format="%H")
Waar lijst van hoofden van stashes:
git stash list --format="%H"
Antwoord 6, autoriteit 2%
Om de boomgrafiek met alles te krijgen: alle takken, alle stashes binnen handbereik…
Uitbreiden op een superhandig antwoord van SicoAnimal, zodat je niet alles hoeft te typen dit spul (vooral handig bij externe SSH-sessies waar je geen enkele Git-gebruikersinterface hebt)…
1. Git-aliassen instellen:
# Short and sweet: hashes and graph with all branches and stashes
git config --global alias.l \
'!sh -c '"'"' git log --oneline --graph --all --decorate $(git reflog show --format="%h" stash --) '"'"' '
# Same as above + dates and emails
git config --global alias.ll \
'!sh -c '"'"' git log --graph --all --date=format:"'"%Y-%m-%d %H:%M"'" --pretty=format:"'"%C(yellow)%h%Creset%C(auto)%d%Creset %C(cyan)%cd%Creset %s %C(green)(%ce)%Creset"'" $(git reflog show --format="%h" stash --) '"'"' '
2. Gebruik aliassen:
# Short and sweet: hashes and graph with all branches and stashes
git l
# Same as above + dates and emails
git ll
3. Zoet resultaat:
Merk op dat je alle stashes kunt zien, niet alleen de laatste op een bepaalde commit (weergegeven met pijlen).
Ruimte voor verbetering:
# In case there are no stashes you get one-liner error message.
# The rest works as expected. Not sure how to fix it.
me@mymachine:~/projects/experiment/latest-angular-ten$ git l
fatal: bad revision 'stash'
* 00a696b (HEAD -> master) initial commit
Referenties:
Hoe maak je een Git-alias met geneste commando’s met parameters?
Antwoord 7
Als je het je kunt veroorloven om een grafische GUI te hebben, kijk dan eens naar gitk
.
Het toont je branches, tags, remote branches stashes etc. In een visueel niet aantrekkelijke, maar zeer compacte en bruikbare vorm. Het komt meestal samen met het “git”-pakket in je pakketbeheerder en werkt als je ook “tk” hebt (de GUI-toolkit die het gebruikt).
Antwoord 8
Voor git-versie 2.2.3 of hoger kun je eenvoudig de --reflog
optie van git log
.
git log --graph --oneline --all --reflog
Bovendien het toont ook bungelende commits.