Toon alle stashes in git log

Ik zou graag alle stashes in git logoutput 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 listals git logte 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" stashgeeft 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 --reflogoptie van git log.

git log --graph --oneline --all --reflog

Bovendien het toont ook bungelende commits.

Other episodes