Git from command line

I've started using git from command line a while ago, and i just can't express the ease it gave me compared to always switching between tools ( everyone else in the team is using something else ).

My main sources of learning were:

My config so far:

merge.tool=meld
mergetool.meld.path=C:\Program Files (x86)\Meld\Meld.exe
diff.tool=meld
difftool.meld.path=C:\Program Files (x86)\Meld\Meld.exe
alias.l=log --pretty=format:'%C(yellow)%h %C(black)\\%C(yellow) %ad%C(black)%d \\ %C(yellow)%Creset%s%C(black) \\ %C(cyan)[%cn]' --decorate --date=short --graph -30
alias.p=pull --rebase
alias.dlc=difftool --cached -d
alias.d=difftool -d
alias.s=status -s
alias.res=reset --hard
alias.ll=log --pretty=format:'%C(yellow)%h %C(black)\\%C(yellow) %ad%C(black)%d \\ %C(yellow)%Creset%s%C(black) \\ %C(cyan)[%cn]' --decorate --date=short --graph
alias.dc=!f() { git difftool -d $1^ $1; }; f
push.default=current

Config as you can copy to .gitconfig

[merge]
    tool = meld
[mergetool "meld"]
    path = C:\\Program Files (x86)\\Meld\\Meld.exe
[diff]
    tool = meld
[difftool "meld"]
    path = C:\\Program Files (x86)\\Meld\\Meld.exe
[alias]
    l = log --pretty=format:'%C(yellow)%h %C(black)\\\\%C(yellow) %ad%C(black)%d \\\\ %C(yellow)%Creset%s%C(black) \\\\ %C(cyan)[%cn]' --decorate --date=short --graph -30
    p = pull --rebase
    dlc = difftool --cached -d
    d = difftool -d
    s = status -s
    res = reset --hard
    ll = log --pretty=format:'%C(yellow)%h %C(black)\\\\%C(yellow) %ad%C(black)%d \\\\ %C(yellow)%Creset%s%C(black) \\\\ %C(cyan)[%cn]' --decorate --date=short --graph
    dc = "!f() { git difftool -d $1^ $1; }; f"
[push]
    default = current

 Aliases

command
expected result
git s

displays the list of files changed in the working tree

git p pull with rebase
git ll list all the previous commits in the current branch page by page, until 'q' key
git l list the previous 30 commits in the current branch in a formatted way
git dlc show all the changes which were stashed to the next commit
git dc show the diff which in tree which was introduced in the specified commit
git d

show all the changes between the working tree and the index in difftool

 

General workflows

  1. Clone a repo
    • git clone <<repo url>>
    • git checkout <<branch>>

  2. Get new version
    • git p

  3. Push changes
    • git d
    • (optional: git checkout <<path>> to revert changes which are not needed)
    • git add .
    • git commit -m "<<commit message>>"
    • git p
    • (git mergetool . if needed, git rebase --continue)
    • check if solution still works (smile)
    • git push

Extras

I've created a shortcut for the current repo's location, like this:

C:\Windows\System32\cmd.exe "C:\Program Files\Git\usr\bin\bash.exe" --login -i /K "cd <<project path>>"

this way it also keeps the setting of the command line window (background, font, size, etc)

Add comment

Loading