User Tools

Site Tools


git_cheat_sheet

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
git_cheat_sheet [2022/11/30 22:26] – [Install] stephengit_cheat_sheet [2026/05/19 22:30] (current) – [Try Git] stephen
Line 21: Line 21:
  editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession  editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession
  pager = cat  pager = cat
 + longpaths = true
  
 [user] [user]
Line 58: Line 59:
  ci = commit -m  ci = commit -m
  ca = commit --amend --no-edit  ca = commit --amend --no-edit
 + cu = reset HEAD~
 + cuh = reset --hard HEAD~
  br = branch  br = branch
  ba = branch -a  ba = branch -a
Line 65: Line 68:
  fa = fetch -a  fa = fetch -a
  tf = !git reset && git checkout -- . && git clean -df  tf = !git reset && git checkout -- . && git clean -df
 + as = !git add . && git stash
 + pr = !git stash pop && git reset
  brdr = push --delete origin  brdr = push --delete origin
  fp = push --force  fp = push --force
Line 97: Line 102:
  
 ''<nowiki>git config --list --show-origin</nowiki>'' ''<nowiki>git config --list --show-origin</nowiki>''
 +
 +===== Install on Linux =====
 +
 +  - Install Git Credential Manager
 +    - ''<nowiki>sudo apt-get update</nowiki>''
 +    - ''<nowiki>sudo apt-get install git-credential-manager</nowiki>''
 +    - Or download from [[https://github.com/git-ecosystem/git-credential-manager/releases]], assets, gcm-linux-x64-2.x.x.deb.
 +  - Configure Git to use Git Credential Manager
 +    - ''<nowiki>git config --global credential.helper manager</nowiki>''
 +  - Select the credential store backend
 +    - ''<nowiki>git config --global credential.credentialStore secretservice</nowiki>''
 +  - Verify GNOME Keyring (Secret Service) is running
 +    - Run: ''<nowiki>ps aux | grep keyring</nowiki>'', look for ''<nowiki>gnome-keyring-daemon</nowiki>''.
 +    - If missing, start it with: ''<nowiki>gnome-keyring-daemon --start --components=secrets</nowiki>''
 +
  
 ===== Try Git ===== ===== Try Git =====
Line 134: Line 154:
 | ''<nowiki>git push origin <hash>:<branch></nowiki>'' | Push up to a certain commit. | | ''<nowiki>git push origin <hash>:<branch></nowiki>'' | Push up to a certain commit. |
 | ''<nowiki>git push origin HEAD~10:<branch></nowiki>'' | Push up to the last 10 commits. | | ''<nowiki>git push origin HEAD~10:<branch></nowiki>'' | Push up to the last 10 commits. |
 +| ''<nowiki>git push origin HEAD~10:$(git rev-parse --abbrev-ref HEAD)</nowiki>'' | Push up to the last 10 commits. |
 +| ''<nowiki>git push --force origin HEAD~10:$(git rev-parse --abbrev-ref HEAD)</nowiki>'' | Force push up to the last 10 commits. |
 | ''<nowiki>gitk</nowiki>'' | A commit viewer. | | ''<nowiki>gitk</nowiki>'' | A commit viewer. |
-| ''<nowiki>gitk 'stash@{0}'</nowiki>'' | View the contents of the first stash. | 
 | ''<nowiki>gitk --all $(git fsck --no-reflog | Select-String "(dangling commit )(.*)" | %{ $_.Line.Split(' ')[2] })</nowiki>'' | Find a dropped stash. | | ''<nowiki>gitk --all $(git fsck --no-reflog | Select-String "(dangling commit )(.*)" | %{ $_.Line.Split(' ')[2] })</nowiki>'' | Find a dropped stash. |
 | ''<nowiki>git tag -a <tagname> -m "commit comment"</nowiki>'' | Annotated tag (preferred over lightweight tags). | | ''<nowiki>git tag -a <tagname> -m "commit comment"</nowiki>'' | Annotated tag (preferred over lightweight tags). |
Line 142: Line 163:
 | ''<nowiki>git log --no-merges --oneline develop..</nowiki>'' | Show all commits on the current branch. | | ''<nowiki>git log --no-merges --oneline develop..</nowiki>'' | Show all commits on the current branch. |
 | ''<nowiki>git cherry-pick ebe6942^..905e279</nowiki>'' | Cherry-pick an //inclusive// commit range. | | ''<nowiki>git cherry-pick ebe6942^..905e279</nowiki>'' | Cherry-pick an //inclusive// commit range. |
 +| ''<nowiki>git --git-dir=../<other repo>/.git format-patch -k -1 --stdout <commit hash> | git am -3 -k</nowiki>'' | 'Cherry pick' a commit from another repo. |
 +| ''<nowiki>git remote -v</nowiki>'' | View remote / origin URL. |
 +|  Stashing  | |
 +| ''<nowiki>gitk 'stash@{0}'</nowiki>'' | View the contents of the first stash. |
 +| ''<nowiki>git diff stash</nowiki>'' | Shows differences between your current working tree and the most recent stash entry. |
 +| ''<nowiki>git diff stash@{0}</nowiki>'' | Shows differences against a specific stash entry (here, the latest one explicitly). |
 +| ''<nowiki>git diff --name-only stash</nowiki>'' | Lists only file names that differ between your working tree and the stash. |
 +| ''<nowiki>git diff stash -- path/to/file.cs</nowiki>'' | Shows differences against the stash for only the specified file. |
 +
 +
 +
  
 ===== Workflows ===== ===== Workflows =====
Line 265: Line 297:
 </code> </code>
  
 +===== Who needs to clean up =====
 +
 +Lists the author and date of the last commit on each remote branch.
 +
 +Bash:
 +<code bash>
 +for branch in `git branch -r | grep -v HEAD`;do echo -e `git show --format="%ai %ar by %an" $branch | head -n 1` \\t$branch; done | sort -r
 +</code>
 +
 +Powershell:
 +<code powershell>
 +git branch -r | Where-Object { $_ -notmatch 'HEAD' } | ForEach-Object {
 +    $branch = $_.Trim()
 +    $info = git show --format="%ai %ar by %an" $branch | Select-Object -First 1
 +    [PSCustomObject]@{
 +        Info = $info
 +        Branch = $branch
 +    }
 +} | Sort-Object Info -Descending | Format-Table -AutoSize
 +</code>
 ===== How PRs work ===== ===== How PRs work =====
  
git_cheat_sheet.1669847199.txt.gz · Last modified: 2022/12/01 23:26 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki