|
Any recommendations for decent Git GUIs for Windows? I mostly prefer to roll with the command line anyway, but it's nice to have a graphical client to go to occasionally. I've been using SourceTree for years but the last few updates just seem to have made the UI progressively shitter so I figure it might be time for a change, if there's anything good about.
|
# ? Jul 26, 2016 16:32 |
|
|
# ? May 13, 2024 10:23 |
|
chippy posted:Any recommendations for decent Git GUIs for Windows? I mostly prefer to roll with the command line anyway, but it's nice to have a graphical client to go to occasionally. I've been using SourceTree for years but the last few updates just seem to have made the UI progressively shitter so I figure it might be time for a change, if there's anything good about. I've been happy with git-cola, but I've never used it on windows and have no idea how the feature set compares to sourcetree.
|
# ? Jul 26, 2016 17:24 |
|
chippy posted:Any recommendations for decent Git GUIs for Windows? I mostly prefer to roll with the command line anyway, but it's nice to have a graphical client to go to occasionally. I've been using SourceTree for years but the last few updates just seem to have made the UI progressively shitter so I figure it might be time for a change, if there's anything good about. GitExtensions is alright
|
# ? Jul 26, 2016 17:31 |
|
I use Git Extensions (https://github.com/gitextensions/gitextensions) which works really well. I never got into the "cross-platform feel" of SourceTree; GitExt feels more like a Windows application, as it should, since it is written in C# for .NET. While using it, Ctrl-G will open a Bash shell for all your CLI needs.
|
# ? Jul 26, 2016 17:31 |
|
I've tried a couple other GUIs because Git Extensions won't be winning any beauty contests but I always go back to it in the end.
|
# ? Jul 26, 2016 17:47 |
|
Sourcetree is the only answer
|
# ? Jul 26, 2016 19:47 |
chippy posted:Any recommendations for decent Git GUIs for Windows? I mostly prefer to roll with the command line anyway, but it's nice to have a graphical client to go to occasionally. I've been using SourceTree for years but the last few updates just seem to have made the UI progressively shitter so I figure it might be time for a change, if there's anything good about. The standard Git for Windows comes with git gui and gitk commands. That's all you need! Keep it simple.
|
|
# ? Jul 26, 2016 20:20 |
|
Blinkz0rz posted:Sourcetree is the only answer
|
# ? Jul 27, 2016 00:34 |
|
Does tig not work on Windows or something?
|
# ? Jul 27, 2016 03:54 |
|
I'm hoping someone can help me unfuck my git repo. Here's what happened: I made changes, commited and pushed to remote. This is fine. Then I accidentally did a commit amend on the latest commit which was just pushed. So as i understand I won't be able to push anything because I hosed up that commit? Then someone told me to fix it with reflog, but didn't explain exactly how, so I did reflog delete of the last amend, which is a wrong and bad thing to do? So how do I just put my repo in the state it was in when I pushed last. And is that reference deletion going to gently caress me somehow? Every time I have to do something non trivial with git I end up trying in vain to understand a single thing and so loving frustrated that I can barely function.
|
# ? Jul 28, 2016 21:02 |
|
peepsalot posted:I'm hoping someone can help me unfuck my git repo. Here's what happened: Look up the sha of the commit you pushed (using reflog or whatever) `git reset --hard <sha>` To point your current branch back to that commit. done. If you have things you did on top of that amended commit then use `git rebase --onto <sha> <commit>` to rebase them
|
# ? Jul 28, 2016 21:16 |
|
peepsalot posted:I'm hoping someone can help me unfuck my git repo. Here's what happened: I think you want git reset --hard SHA Where SHA is the latest commit hash on the remote repo. That's assuming everything you care about is safe and sound in the remote repo.
|
# ? Jul 28, 2016 21:17 |
|
Is the remote SHA not supposed to match the local SHA? Does it matter which I use?
|
# ? Jul 28, 2016 21:22 |
|
peepsalot posted:Is the remote SHA not supposed to match the local SHA? Does it matter which I use? Different commits have different SHAs, and that SHA never changes*. When you amended the commit, you actually made a whole new commit. The original commit, that you pushed out, is still hanging around, git just doesn't show it to you because it's an orphan (it doesn't have any branches pointing at it). "git reset --hard <sha>" tells git to move the checked out branch to point at the commit <sha>. So if you run that with the SHA of the original commit, your current branch (I'm guessing master) will now point to the original commit that you pushed out, and the amended, bad commit will become an orphan. *Barring some incredibly unlikely collision, a sha uniquely identifies a single commit across all git repos ever, anywhere. good jovi fucked around with this message at 21:40 on Jul 28, 2016 |
# ? Jul 28, 2016 21:38 |
|
peepsalot posted:Is the remote SHA not supposed to match the local SHA? Does it matter which I use? They should match unless you did a rebase or cherry-pick upstream. You can just fetch then do `git reset --hard origin/master` filling in the remote/brach you use.
|
# ? Jul 28, 2016 21:39 |
|
good jovi posted:Different commits have different SHAs, and that SHA never changes*. When you amended the commit, you actually made a whole new commit. The original commit, that you pushed out, is still hanging around, git just doesn't show it to you because it's an orphan (it doesn't have any branches pointing at it).
|
# ? Jul 28, 2016 21:45 |
|
Commits still hang around even if no branches point to them or their children, at least until the next time git decides its time to garbage-collect (or you do it manually) For the most part to find an orphan before it gets garbage collected and deleted forever you need the reflog or some serious digging through the .git structure (if there's a command to just find all orphans I don't know it)
|
# ? Jul 28, 2016 21:50 |
peepsalot posted:What do you mean "become an orphan", that sounds like its still around in some way? Isn't it completely gone with no trace after a hard reset? Objects in git stay in a repository copy even when nothing references them, until they are removed by garbage collection. By default, garbage collection also only removes objects after they have gone unreferenced for a grace period of 30 days or so. That gives you a chance to recover from many types of fuckups, as long as you had your files added in some way. In fact, even just "git add" without a commit should still create an object for the file, as far as I understand. That file object is then referenced in the temporary tree object constructed up until a commit.
|
|
# ? Jul 28, 2016 21:55 |
|
peepsalot posted:What do you mean "become an orphan", that sounds like its still around in some way? Isn't it completely gone with no trace after a hard reset? Git does not destroy commits, you have to work really hard to lose data. This is a big reason git rocks. All amend does is create a new commit with the updated contents + message with a parent of HEAD~1 and updates the branch to point to it instead of the old HEAD. The commit is still there and you can find it in reflog. Same for rebases or any other operation. Eventually git gc will go through and get rid of commits that aren't referenced anymore.
|
# ? Jul 29, 2016 00:09 |
|
apseudonym posted:Git does not destroy commits, you have to work really hard to lose data. This is a big reason git rocks. Oh, cool. apseudonym posted:Eventually git gc will go through and get rid of commits that aren't referenced anymore. So with 'work really hard' you actually mean 'just do nothing for a few days'.
|
# ? Jul 29, 2016 00:13 |
|
uXs posted:Oh, cool. By default it doesn't prune things younger than 30 days. You can change that if you'd like. E: wrong on the dates, it's 30 days for amend/rebase stuff. See the git gc docs. apseudonym fucked around with this message at 00:17 on Jul 29, 2016 |
# ? Jul 29, 2016 00:14 |
|
uXs posted:So with 'work really hard' you actually mean 'just do nothing for a few days'.
|
# ? Jul 29, 2016 00:41 |
|
peepsalot posted:I'm hoping someone can help me unfuck my git repo. Here's what happened: In addition to other answers I just want to note that there's nothing inherently wrong with force pushing as long as you understand the consequences. If you're the only one working on the repo or you're on a feature branch that no one else has touched feel free to git push --force as you're the only one who has a copy of the remote. If someone else has pulled the remote and you amend history you have to worry about getting out of sync but even that isn't too hard to unfuck.
|
# ? Jul 29, 2016 14:48 |
|
Blinkz0rz posted:If someone else has pulled the remote and you amend history you have to worry about getting out of sync but even that isn't too hard to unfuck. I've always refused to force-push and convinced my co-workers to follow the same rule. What is the right way to un-gently caress that situation?
|
# ? Jul 29, 2016 14:53 |
peepsalot posted:I'm hoping someone can help me unfuck my git repo. Here's what happened: What will really help is if you get a handle on how git actually structures commits and what branches are. See this: http://think-like-a-git.net/ I personally think it's impossible to know what you're doing in git until you understand the graph. Knowing that "git reset" is just moving a branch pointer to another node in the graph just means I can use it for all kinds of things, not just as a "I dun hosed up" button that most people seem to think it is (the name of the command doesn't help in this regard). Knowing that git commits exist even when you delete a branch, and what the reflog is for makes instant sense too.
|
|
# ? Jul 29, 2016 15:02 |
|
Gounads posted:I've always refused to force-push and convinced my co-workers to follow the same rule. What is the right way to un-gently caress that situation? If I understand correctly: code:
Drop your last commit, move to where master is.
|
# ? Jul 29, 2016 16:34 |
|
Hughlander posted:If I understand correctly: If you're out of sync by more than one commit, or if you want to keep your latest commit, that won't work. The general approach to "throw away all local work and get in sync with the remote" is code:
|
# ? Jul 29, 2016 16:53 |
|
If you have local commits you want to keep you just do git fetch; git rebase -i origin/branchname and then remove the old versions of the commits that aren't yours. You can also do this non-interactively with rebase --onto, but that's way more complicated.
|
# ? Jul 29, 2016 17:36 |
|
Plorkyeran posted:If you have local commits you want to keep you just do git fetch; git rebase -i origin/branchname and then remove the old versions of the commits that aren't yours. You can also do this non-interactively with rebase --onto, but that's way more complicated. Rebase --onto isn't complicated though.
|
# ? Jul 29, 2016 17:43 |
|
If you aren't already familiar with manipulating the commit DAG it'll take a few reads of the man page to even understand what it does and how to call it. It's not that hard, but it's a lot harder to explain than "delete the lines with commit messages you didn't write".
|
# ? Jul 29, 2016 17:54 |
|
I'm usually pretty good at reading DAGs and the Git version trees and I still have to go to the man page every time I think about using git rebase --onto
|
# ? Jul 29, 2016 19:12 |
|
I cloned a project from our lab's git server via just git clone repo and no other options and now when I do things like git branch -r or git branch -a. It doesn't list any remote branches. It's a bit annoying and I figured out the problem is somehow related to the option --depth 1 being passed to my original git clone or whatever. I checked the config file and on StackOverflow but I can't seem to figure out how to reset the clone depth so that it lists all branches, both local and remote. Is there a way I can do this without just re-cloning the entire thing and if not, what option do I augment the clone command with? Can I just do --depth 100 or something large and call it a day or is there a more "correct" option to use?
|
# ? Aug 4, 2016 17:07 |
|
Boris Galerkin posted:I cloned a project from our lab's git server via just git clone repo and no other options and now when I do things like git branch -r or git branch -a. Probably code:
|
# ? Aug 4, 2016 17:14 |
|
As a git novice, I really do love the command line interface. It tends to have great little helpful messages that would otherwise require Googling.
|
# ? Aug 4, 2016 23:35 |
|
smackfu posted:As a git novice, I really do love the command line interface. This is probably the only time I've ever read anyone praising gits UI.
|
# ? Aug 5, 2016 01:37 |
|
quote:Master Git and a novice were walking along a bridge.
|
# ? Aug 5, 2016 03:00 |
|
Edison was a dick posted:Probably This gave me the error "--unshallow on a complete repository does not make sense". I just deleted the repository and re-cloned it with just clone (no options) and git branch -a lists remote branches now so but problem solved.
|
# ? Aug 5, 2016 10:13 |
|
So I'm actually browsing our git repository on our gitlab site and holy poo poo this UI is a loving disaster. I have/had my browser snapped to one side/half of my monitor so the ~responsive design~ decided to get rid of all the labels on the menu bar on the left. Maybe I'm just too old (I'm 28...) but the icons they decided to use make no god drat sense to me and aren't very intuitive, specifically the activities (speedometer), milestones (a loving clock), merge request (a server rack??), and snippets (pieces of paper). I tried to look for a way to change my settings to maybe see if it can just force display the labels so I clicked on 'profile settings' but wasn't expecting the sidebar to replace the icons with different options so I spent 10 seconds of my life upset that "profile settings" literally only lets me change my profile information before realizing the sidebar changed. Now I wasted a minute of my life posting this. Is there a userscript I can install or something to change the entire UI to Github's UI? I mean that one at least makes perfect sense and I'm used to it. Boris Galerkin fucked around with this message at 09:57 on Aug 15, 2016 |
# ? Aug 15, 2016 09:55 |
|
Boris Galerkin posted:So I'm actually browsing our git repository on our gitlab site and holy poo poo this UI is a loving disaster. I have/had my browser snapped to one side/half of my monitor so the ~responsive design~ decided to get rid of all the labels on the menu bar on the left. Maybe I'm just too old (I'm 28...) but the icons they decided to use make no god drat sense to me and aren't very intuitive, specifically the activities (speedometer), milestones (a loving clock), merge request (a server rack??), and snippets (pieces of paper). I tried to look for a way to change my settings to maybe see if it can just force display the labels so I clicked on 'profile settings' but wasn't expecting the sidebar to replace the icons with different options so I spent 10 seconds of my life upset that "profile settings" literally only lets me change my profile information before realizing the sidebar changed. Doubt there's a full "Github UI" script. Gitlab does have a lovely UI, though. It was way better before they did the overhaul.
|
# ? Aug 16, 2016 03:48 |
|
|
# ? May 13, 2024 10:23 |
|
On the subject of gitlab, does anyone have any experience with setting up a doxygen branch to host the doxygen generated files? We have no documentation in our code right now and my supervisor doesn't really believe in it (we're a research group comprised of non-programmers other than me and my supervisor thinks it's a good exercise for all his phd students to figure out what the gently caress poo poo like "eocs = 0.9887342" comes from or even means). I'm doing a rewrite of the entire code we use (changing backend libraries) and I figured gently caress it, I'm going to document everything the way god intended and grabbed Doxygen, but it's not really feasible to track the doxygen generated folder since everything changes so much.
|
# ? Aug 16, 2016 08:57 |