Question/Opinion : what do people think of and us...
# help-with-other
r
I have mixed and matched with 1. Source Tree - fine but every so often they will do an upgrade and it annoys the hell out of me 2. Git Kraken : using it commercially for the first time , i know lots of people like rate etc 3. command line : you are all mad men and women 4. the one Seb uses and whose name i can never remember 5. The inbuilt Windows visual studio malarkey 100> Tortoise.. shoot me now I m reviewing everthing and jyst seeing where I am and finding out things while i can
k
visual studio - built in one đŸ˜² - works fine, the merging stuff is a lot better, that or GitHub Desktop client for some opensource things. I avoid the command line as much as possible
p
As a contractor, Git Kraken is great. It allows you to configure multiple profiles for each client which is nice. The price is a tad weighty, especially as these days we get locked into subscription costs, rather than buying a one time licence. I also avoid command line where possible. Just have a bunch of Gists for some handy techniques where needed. Command Line is great to learn, but in the heat of battle, I like a GUI.
c
I've been a huge fan of GitKraken ever since I left college, after trying out all of the ones you've mentioned above. It's clean, I know where all the features, bells and whistles are, I love the interface more than simular looking products like Fork or Source Tree (the devil is in the details IMO). Also why did you have to mention Tortoise đŸ˜­
r
I use GitKraken, the interface is nice and colourful and it (mostly) does all the tricky bits for me. And when that doesn't work, I google the command line stuff :p I used to use Sourcetree, and it's fine, but fiddly at times. Less colourful! Tortoise was great when I was coming into the git world from svn, since I'd used tortoise there too, but it quickly wasn't enough for what I was doing regularly. Final honourable mention to the recent updates in VS Code for diffing, they're doing some great stuff in there, along with GitLens for history/blame (run by the same company as GitKraken)
r
@Sebastiaan what was th name of the git client you used/use ..
c
m
Vs and command line
r
Used to only use CLI, but moved to Lazygit some years ago, and more recently Magit in Emacs. I still use CLI for advanced things
r
@Corné Hoskam Thank you thats the one..
s
https://fork.dev/ but seems like the one in VS is coming along nicely
t
I find the one in visual studio more intuitive. Plus my source control tool is integrated into my development environment. I don't need multiple applications.
j
I also use Fork I really like it, and I also really like supporting a business that's run just by a couple.
d
I love Visual Studio's latest iteration. It seemlessly integrates with both Azure Dev Ops and GitHub tasks as well as repos. I rarely leave VS only need to use cli for things like untracking which may even be in VS now.
s
I love Fork so much! There's very little stopping me from using it on the daily but my biggest problem is that I really don't want to spend the time learning the last 5%. I've been using Git Extensions for 15 years now (shoot, I'm dating myself) and I know how to do just about anything with it. Personally, I can't stand GitKraken, I keep wanting to use it but every time I try, I feel like it has dumbed down the things I really need to achieve so much that I can't figure out how to do it. Really happy that other people have great success with it though!
s
I felt the same about GitExtensions, but I've completed the migration in full to Fork - it wasn't so hard actually, even though I've tried numerous times through the years to switch away from GitExtensions đŸ™‚
r
I think I'm going to go the GitKraken Route but i will pine for GitExtensions..
c

https://tenor.com/blk7w.gifâ–¾

Also, I think @Owain is a Gitkraken Ambassador, so he might have a nice referral code for ya to use
o
Yup. I do.
m
Command line, + resolve merge issues in Visual Studio
j
It's worth bearing in mind we all use git to do different things using different workflows. Depending on where you host your repo there may also be "meta" features that aren't strictly git related but different clients may integrate (PR management, issue/task tracking etc.) At Bump we're super hot on code quality so everything get's PR'd and code reviewed. We're also using GitHub for most of our repos. For that combo, nothing beats GitKraken because of its PR integration features. The same was true for DevOps, though I haven't used that for a while. It's also nice to have profiles, so I can easily switch between work/personal/open-source/closed-source identities and integrations. But none of that is relevant to "core" git features. I think most of it really does come down to how you personally feel/think about certain features. e.g. I like the conflict resolution in Visual Studio best, but not all my code lives in VS projects so it's not my "goto" solution. For me, the biggest test is how quickly a tool can help me achieve a given task. For git, that depends largely where I am and what I'm doing. Say I want to author a commit - If I'm in VS, then VS will be quickest; if I'm in a file explorer then a context menu might be quickest; if I'm in the terminal then the CLI will be quickest. So yeah, I've got all the git tooling installed. Except SourceTree... it sucks.
r
ta jason
c
GitKraken FTW đŸ™‚
s
Just saw this - looks interesting! https://gitbutler.com/
n
So these days I mainly use the CLI for the git basics, but then if I need to do something "more" I find myself using Fork 90 % of the time or VS Code / VS git's client. Normally when I want to be really selective about what's going into my commit. Most of what I'm doing is a pull/push/branch so from the CLI I just find I'm quicker as I have it open most of the time anyways. I find switching branches in some git clients is "slow" in that it takes a while for the UI to update or things to reload
r
I came to the realisation yesterday that the diff stuff in VS code I was lauding is actually from a plugin - SemanticDiff https://semanticdiff.com/ It diffs with context, so it knows if a code block has moved, and what has actually changed within it, for example
a
I switched to Rider over 6 months ago, and I love its build in Git, it's quite clear, much better then VS in my opinion. The diff function is also very nice. You can easily say which part of the code you want, and it immediately applies the updates so you also see possible new build errors appearing. https://cdn.discordapp.com/attachments/1204069461515305040/1208735478707130428/image.png?ex=65e45da3&is=65d1e8a3&hm=e4ab0de995b4f400454366220fbc0289e3595b61ac2a358e26f4f05f5b4c7486&
o
Visual Studio built in, and I sometimes use the CLI for basic stuff. I never really need to do anything more complex than simple merges or occasionally a rebase, and it works more than well enough for that. PR management and issue tracking is all done through Azure DevOps. I do go back and try Git Extensions every now and then, but the visual studio one does everything I need
h
Github Desktop here and commandline when the situation requires it đŸ‘€
m
1. Git command line (its just very direct and precise with what I want to do) 2. Used to be Visual Studio Built in. But now prefer Git Kraken (Love the visuals but when it does something weird I go back to commands to unweird it).
m
Does anyone know if any of the clients being mentioned support custom alteration of the
prepare-commit-msg
eg prompting/stamping the branch name on the start of the commit msg... (It seems like most seem it to be swearing, but sourcetree was the only one I found... but I only tried over 18months ago)
Copy code
bash
#!/bin/bash

# This way you can customize which branches should be skipped when
# prepending commit message. 
if [ -z "$BRANCHES_TO_SKIP" ]; then
  BRANCHES_TO_SKIP=(master develop test)
fi

BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"

BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
BRANCH_IN_COMMIT=$(grep -c "$BRANCH_NAME" $1)

if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then 
  sed -i.bak -e "1s/^/$BRANCH_NAME : /" $1
fi
r
Looks like gitkraken does, but I don't know to what extent because I've never used that hook: https://help.gitkraken.com/gitkraken-client/githooks/#prepare-commit-msg