Hello sir. Have you heard of our lord and saviour Version Control Systems?
Here's a tutorial for git and github:
https://www.youtube.com/watch?v=0fKg7e37bQE
Git is a command-line version control software. There are also graphical interfaces available such as git kraken
Github is the main remote repository that people use, however it is heavily geared towards open-source, with private repositories being a paid feature. You can use Bitbucket instead if you want free private repos.
...which is why we invented git guis!
I just got hired at Axosoft, we make Gitkraken. I'm told we made it because we also struggled with git, and personally I've been using it for about a year and I think it's pretty great. Check it out if you want to, or don't, I'm not your mom.
First of all it's important to know how to do all of these from the cli (which it seems you do. Good on you).
I usually use my IDE's (JetBrains) git manager, but as a standalone app I've head good things about Git Kraken
There are GUI git clients out there. A lot of them actually. I personally don’t really like them because I use a lot of hooks and things that just don’t really interface well with GUI clients. Try really buckling down with that site and I bet you’ll enjoy the CLI a lot more. Also, I feel like once you sufficiently understand what you’re doing in a git workflow, you’ll like the CLI. It’s so much faster.
Similar to me.
Work got everyone a license for GitKraken, which is a great bit of software. But I tend to only use it to view the graph, and do conflict merges as it's merge tool is nice. Everything else I do using the cli.
A couple of other deals I got from emails:
CatLight notifier - 20% off with coupon CYBER20
GitKraken Git client - 20% off with coupon GKBF18
GitHub uses the Git version control system. If you were expecting a place to drag and drop files, well, it's not quite like that.
If you haven't already, create a GitHub account.
Create a new empty repository.
Download a Git client such as GitKraken and sign into your GitHub account.
Clone your empty repository to your computer.
Move your files into the cloned folder.
In GitKraken, stage all changes, then commit them.
Use the "Push" button on the top to upload your changes to GitHub.
In the future, in order to change files, you'd stage, commit, and push.
Git keeps track of the changes you make and you have the ability to revert to any previous commit (in GitKraken, right-click -> Reset to this commit). You can also view side-by-side changes on GitHub showing line-by-line what you added/removed.
> We view GitKraken as a SaaS
> It's a SaaS.
I'm glad to know you feel this way because your website sure does a good job of selling this as (direct quote) "100% standalone" (http://imgur.com/a/LfR3y) (direct link: https://www.gitkraken.com/features)
It sure feels shady to me when one of your main selling points directly contradicts your intentions.
I have no problem with a company selling web-based features as a SaaS, but claiming a "100% standalone" desktop application is a SaaS is straight up lying.
Full disclosure, I'm a lead dev on gitkraken, a competing client, so I'm admittedly biased. That said, I'm building a client because of my opinions, as opposed to having them because I'm building a competing client. More of just a reinforcement lol.
With that out of the way, I absolutely agree. I had 2 primary motivations for wanting to build a git client, the second one tying in to what you're saying.
Out of the major clients, I've always sort of felt like it went git-extensions, tower, source-tree in order of usability. I've bungled up lots of my own data in source tree. I'll admit openly that it was all user error, but I'm a fairly skilled git user and I was trying to do simple things, and I've never had that issue in either of the other clients.
It feels gimped too, even compared to git-extensions (which is still gimped compared to the cli, despite being my favorite). Hiding the force push option and other over "simplifications" definitely make it easier to use if you don't know what you're doing, but they make it harder to learn what you're doing, and harder to use if you DO know what you're doing.
/u/Esvandiary is absolutely correct though, the mac version is substantially better than the windows version, although I prefer tower in that case.
It's the same as other projects, just make sure you have a proper gitignore and a good Git client.
Honestly, I am not sure what you're looking to gain that you're not going to get with
$ git log --graph --decorate --oneline --all
(notice I added --all
. I think that is important and will show you more branches, etc).
The only difference is that you will have it not in a terminal window.
Let me put it another way, you say you are looking for something "better" but that is rather vague and I am not sure what is better.
Don't get me wrong, while I prefer to do all of my git via CLI, I 100% recognize the advantages of a GUI at times and for convenience (preferably with an understanding of what is going on still). But it sounds like you're looking for ways to view the history; not interact with git. And I am not sure what you expect to get?
Also git kraken.
I'd recommend the terminal along with the Git Extensions for a better overview of branches.
Meh, jokes aside - If you really need a GUI, and it's not for work, go for GitKraken - it's clean, comes with light and dark UI, has plenty of features on a right click - I love it.
GitKraken has supported git flow for some time now.
Having a standard workflow and meaningful branch names, not to mention that all commits to master
after the initial commit are by definition deployable if you're using the process, just reduces the friction. But I hear the same people kvetching about git flow that I heard complaining about enforceable style guides (RuboCop et al) five years ago, and the same personality types as those who fought source control 25 years ago. Some people seem to resist change because they value their ability to screw things up ("ensure that I'm the only one who understands everything") more than the survival of the project or organisation.
Bus factor is a very real thing, folks.
I suggest that you don't develop editing software, especially if you're new to coding. Video editors are incredibly complicated.
If you want to code on a video editor, I would suggest improving the open-source Kdenlive. They have a GitHub mirror, which you can clone and edit, but to submit changes you need to format a patch file and send it to KDE.org.
Also, I don't think GitHub is suitable if you wanted to do non-development stuff. I wouldn't think of using version control of any kind for video editing :P
Lastly, here's my favorite Git client: https://www.gitkraken.com/
GitKraken is a great tool if you're looking for a sophisticated Git GUI.
I would definitely recommend getting used to the git bash. Only differences on bigger projects I would say are more merges and keeping track of submodules. Most problems are quite easy to google though.
If you're used to a nice git gui :
https://www.gitkraken.com/ https://www.sourcetreeapp.com/
are nice, it's sort of the philospophy of linux/vim to use one tool for one job, in this case we move the responsibility of showing a git gui from our text editor to another tool. Vim's only real job in this case is editing text/code as efficiently as possible, and git kraken's only job is to allow you to interact and view your git repo. (this would be the same if you just used the raw git
commands in the terminal, but not as pretty)
I'm not sure if they have the functionality your looking for, and you're probably bettor off with EgZvor's solution in the long run, It might just make the transition easier to use a tool that seems more familiar.
I will say I use https://github.com/tpope/vim-fugitive, just for easily checking exactly which files im committing and some other little things. I'm not really following my own advice but it's just so damn convenient ;-;
I've done this for class work, but I use gitkraken now, it is a really nice GUI for git. It makes using git for new users/students easy. And it gives a nice tree of all the development. https://www.gitkraken.com/
Git is probably going to be your best bet, and isn't a bad skill to learn professionally in the long run. Git can be used either very superficially and easily, or with crazy advanced levels of power, but it should be worth it. As soon as you've got your repository setup with a correct Unity .gitignore
file, pushing and pulling should be a breeze and only take seconds. Depends on the size of your assets, at least.
If you're constantly running from one PC to another pushing and pulling commits, I can see how that's a burden, but it's not bad practice to build up features granularly in commits, so you can exactly find where and when a certain issue occured for the first time. You probably don't want to go full automatic, as you'll find you lose control over some processes, and suddenly overwrite changes you made on your PC before you continued work on your laptop.
On basis of software, there's only a handful of Git clients available on both Windows and Linux (without going to a terminal), of which GitKraken might be a somewhat comfortable choice, but that's up to your own preference. You don't really need the Git for Unity plugin (I've never used it). In the past, I've setup my programming peers up with SourceTree, and the artists on the same project in GitHub Desktop for it's sheer simplicity (note: Windows or Mac OS).
Version control started making a lot more sense to me once I started using graphical interfaces instead of the command line. At work we don't use Git so I'm not sure what the best Git GUI is, but I've had success with GitKraken in the past.
This is some really good advice and inspiration, thanks!
Keeping things "bite sized" is where I struggle, I always seem to get lost in an issue/problem that is way ahead of the current stage. As you use Github Issues you may find this useful: https://www.gitkraken.com/glo (not used it yet, but just got an email about it). It lets you sync/organise issues and keep track of them in boards (like Trello)
To add to this, GitKraken is a full-featured multiplatform Git client for Windows/Mac/Linux which supports integration with BitBucket and GitHub. I would highly recommend it to anybody who's interested in using Git without the hassle.
Unfortunately the GUIs aren't great, but at least they're better than the CLI.
I used to use GitKraken which is awesome and free, but closed-source. Your Fork also looks great, but it costs $50 (wtf?!) and also closed-source.
So currently I use VSCode+GitLens+GitGraph which works great with most day-to-day usage (commit, amend, push/pull, stash, switch branch, line-based staging), but unfortunately not great with merge/log/graph. But it's built-in to the editor so it's great, and being open-source is a huge plus since I can add any features I'm missing.
I second the use of version control. It is extremely helpful with all larger projects. If you prefer a user interface for things, I would suggest GitKraken. It is super helpful and allows for lots of expansion when you become more comfortable with it.
​
And with a GitHub page, you can continue to update a README document so that onboarding is more straightforward and streamlined for new folks that you bring on. Therefore everything is contained on a single site!
Personally use GitKraken. Found it to be easier to read, faster, and just generally more enjoyable across Mac and Windows. Things like viewing outstanding PRs / tickets are v useful.
Some integrations (e.g. Azure DevOps) are paid tho!
Yes. You need a Git client on your computer. You can use either a graphical client or command line Git (sudo apt install git
on Linux, or Git SCM elsewhere).
I’d definitely suggest checking out the graphical Git client GitKraken. It’s very beginner-friendly and is free to use if you’re working with a local repo or a public hosted repo.
Likely conflicts of some sort, you'd need to rebase your branch.
The "GitHub Desktop" app is a very sub-par Git client. I don't know how to help you out with that, but I recommend GitKraken. You can rebase just by dragging and dropping branches.
Check this page out, one of these methods should get ya going. https://confluence.atlassian.com/bitbucket/set-up-a-repository-877174034.html
Also check out GitKraken, you'll be able to commit code without using the command line if that is something you're looking for too.
Just gonna say, I had trouble understanding git until I started using GitKraken. Even now I still use it, because it gives you a really nice overview of all your branches, commits, etc.
¯\_(ツ)_/¯
I was a die hard TFS fan till I was forced to use git. Bit of a pain to make the switch, but with tools like Source Tree or Git Kraken its a lot easier. After working in a git environment for 2 months I can definitively say I'll never go back to TFS if I have a say in the matter.
I'm sure with some googling you could find a real guide, but here's what I did. Keep in mind I'm also a newbie so some of this could be wrong but reddit being what it is I'm sure someone will correct me. ;)
First I used VMware player -> http://www.vmware.com/products/player/playerpro-evaluation.html
With Ubuntu 16 -> https://www.ubuntu.com/download/desktop
Follow the VMware instructions to setup a VM with the Ubuntu iso (if you see an option for an "easy install" use that), as far as the settings for the VM go I usually just split everything evenly between the host(Windows) and the VM. So if you have 4 cores give the VM 2 cores, with 16GB of ram I give the VM 8GB, etc.
Once you have the VM running and you are logged in press ctrl+alt+t to bring up a terminal, then type in the following commands.
sudo ./vmware-install.pl -d
sudo apt-get install ruby-full
sudo gem install bundler
sudo apt-get install -y nodejs
sudo apt-get install zlib1g-dev
sudo gem install nokogiri
sudo gem install rails
sudo apt-get install libsqlite3-dev
sudo apt-get install git
The last one is semi-optional but if you are going to work as part of a team in the future you'll probably want to learn git. If you hate using the command line for git there are a few GUIs that make it easier. My personal favorite is GitKraken -> https://www.gitkraken.com/ I don't know if it's any better than the others but it sure is pretty.
That should be it, you can now run the "rails new" command and begin your journey into the wonderful world of rails! If anyone sees something wrong here please PM me and I'll edit this or just leave a reply with the correct info.
Share the source where they said there would be destruction because it has no mention of it in its post-beta blog post
Pretty sure they only said they were on track for launch, not ahead of schedule. But feel free to share the source. otherwise, sounds like you tried to stretch this one, just like the previous claim.
As for BETA release not being current with master/production/working branch isn't shocking. That's essentially how software and game development as an industry and source controlling works
>Since the time we branched the build for Open Beta, we’ve implemented numerous improvements into the launch build of the game. The shift to November also gave us extra time to improve visual fidelity and stability issues that you may experience during the Open Beta.
Share the source where they said there would be destruction because it has no mention of it in its post-beta blog post
Pretty sure they only said they were track for launch, not ahead of schedule. But feel free to share the source. otherwise, sounds like you tried to stretch this one, just like the previous claim.
As for BETA release not being current with master/production/working branch isn't shocking. That's essentially how software and game development as an industry and source controlling works
>Since the time we branched the build for Open Beta, we’ve implemented numerous improvements into the launch build of the game. The shift to November also gave us extra time to improve visual fidelity and stability issues that you may experience during the Open Beta.
Share the source where they said there would be destruction because it has no mention of it in its post-beta blog post
Pretty sure they only said they were track for launch, not ahead of schedule. But feel free to share the source. otherwise, sounds like you tried to stretch this one, just like the previous claim.
As for BETA release not being current with master/production/working branch isn't shocking. That's essentially how software and game development as an industry and source controlling works
>Since the time we branched the build for Open Beta, we’ve implemented numerous improvements into the launch build of the game. The shift to November also gave us extra time to improve visual fidelity and stability issues that you may experience during the Open Beta.
What does your company use for version control? It is standard for any serious company to use some form of version control, and most use git. Even if they don’t, it may be a bonus on a future job if you ever end up switching companies.
It is definitely worth learning it for yourself too. It is an extremely useful tool that lets you dev faster, even in personal projects. Learn git flow. There’s apps and sites that actually simulate a git repo to learn the commands and common practices. The whole idea is to keep separate dev and production branches and develop new features in feature branches. This way if a feature breaks the app, only that one feature branch is broken and you can easily roll back by checking out the develop branch again. Meanwhile, your production code is untouched on the production branch, waiting for finished features to be merged in. I use it on all of my personal projects.
> There are many times I go to commit to a git repo and SourceTree just inexplicably dies on me as well.
I'm not sure how tied you are to SourceTree, but if you're not, I recommend giving GitKraken a try. It's what I've been using for a little over a year now, and works fantastic for me!
As for Visual Studio, you could give JetBrains Rider (or if you want to see the specifically Unity branded page - it still leads back to Rider) a try, but I definitely get that switching your IDE is a bit more of a heavy-handed task than switching out your Git client.
There are some programs that make it a little easier. GitKraken is pretty dang good. RStudio has a built in one, but it is a little clunky. You only really need a few commands to start, so don't get overwhelmed by the options.
I'm winding down my tour here in Germany and realized my previous assignment notifications had come at very different times in the past, so I started to create a timeline to compare them. Figured I'd put some other milestones on the timeline and share. For those curious, I used https://www.gitkraken.com/timelines. If anyone would like to create their own, I can email you the .PNG ranks so you don't have to search them out, just shoot me a message.
I wasn't going to plug GitKraken in this thread, but since someone else already suggested our top competitor...
I actually earnestly believe that learning git is a lot easier with a GUI. It's just so much easier to understand the various git concepts and how they work together when you can see a visualization of how your repo changes. You should give GitKraken a shot - it's completely free for students through the GitHub Student Developer Pack. We have a series of short videos explaining git concepts visually, then showing how to do them in GitKraken.
Most people like to learn about git's concepts and how they work, then how to apply them, but if you wanna try the exact opposite approach, my friend recently showed me an online book called Git Magic that sounded kinda interesting
>As Arthur C. Clarke observed, any sufficiently advanced technology is indistinguishable from magic. This is a great way to approach Git: newbies can ignore its inner workings and view Git as a gizmo that can amaze friends and infuriate enemies with its wondrous abilities.
>
>Rather than go into details, we provide rough instructions for particular effects. After repeated use, gradually you will understand how each trick works, and how to tailor the recipes for your needs.
www-cs-students.stanford.edu/~blynn/gitmagic/
If you end up reading gitmagic and don't mind, I'd love to hear what you thought of it. As someone who works on a git client (especially one that's so popular among beginners), I spend a lot of time talking and thinking about how people learn git, so I'm curious.
I just stick it in git (like I do everything else). I don't feel much need for an integrated VCS plug-in. Git kraken works well for me.
I write fairly decent commit messages to avoid having to try to read diffs.
I think the issue is not so much VCS, but diffs. Thing is: How are you going to make those humanly readable? Even in code this can be challenging and that is text based media; this is visual media.
It could be helpful for FreeCAD to support an uncompressed storage method so git and the associated diff tools can make text comparisons. Then leave it up to git to handle the compression generically. This should be super easy to implement as zipping is probably 1 line of code that can simply be skipped with a setting.
Hosting web pages on github, it sounds like you maybs be already doing this: https://pages.github.com/
Basically git gives developers a tool to version control the code they are writing. Allowing collaboration, and reversing changes. You can manage any type of file in a git repository, so projects in any programming language, or even simple txt files.
As a very basic workflow, In github if you press the green create repository button, you will get a new empty repository. Before any files are in it, it will give you some hints on how to use it locally. From there you can add code into the repository on your local machine, then push it back up to github for safe keeping.
git clone <url>
or git init
and git remote add origin <url>
Edit some files
git add .
git commit -m "changed some files"
git push -u origin main
Here are some further resources about git: https://git-scm.com/docs/gittutorial https://www.gitkraken.com/resources/learn-git
Might I recommend GitKraken
It's a GUI built on top of git commands that you can integrate with GitHub directly.
Using git in the terminal is a lot of someone who hasn't done it before.
With gitkraken, there's buttons for 95% of what most people use git for.
It's useful because you can use it to make commits while developing code i.e. be able to create a linear logical history of the code. Almost like a timeline of your changes that you create yourself.
You can create branches, which are like offshoots of your code if you want to experiment, and you can safely switch between branches without affecting any other branch.
plus it makes collaboration much easier if that's important to you at all.
Plus since it can integrate to GitHub all of your changes would just be put into GitHub directly automatically.
And a whole slew of other stuff.
They even have a series of short video tutorials on using git with gitkraken
Now, what you're doing at the moment isn't necessarily wrong or anything like that. If anything double redundancy isn't a bad idea. However, you're kind of missing out on all of the pretty useful features that git has like I mentioned above.
I'm a software developer myself, and while I don't know about PhD level ml research, I do know a lot about version control. I try to recommend get cracking to everyone who writes code because it has saved my ass accountless number of times and really helped me save a lot of time.
Can you clarify what you mean by an offline repo, then? If you clone a GitLab (or GitHub, or anything else) to your hard drive, any git client should be able to work with it while offline.
By offline, I mean unplugged from the internet. By work, I mean commit, branch, merge, rebase...basically anything except push and pull.
GitKraken Free Features say you need the Pro version to work with self-hosted repos. The free version can work offline, just not with self-hosted. Same outcome for you in the end, but that subtle difference is what made me ask what you mean by offline.
To help me understand your question, can you say what you tried and why it didn’t work with your setup?
For what it’s worth, I use GitKraken (Pro) and like it a lot. But 50% of the time I use git
command line or the client built into my IDE (IntelliJ). All 3 are equally powerful for basic stuff. GitKraken has a nicer UI and really shines if you’re dealing with many branches across multiple upstream/remote repos.
If you're not using Git, you should. I made this video on how to use GitKraken.
The simple solution would be uploading a ZIP file to a service such as Google Drive or Mediafire.
Please don't do this. If you're a student, you can get it for free from the Github Student Developer Pack. If you work for a charitable cause, you can apply for a license through our Pro For A Cause program.
Let me know if you have questions. It's an important tool for development.
There's a tool called GitKraken that might make it easier for you to get started and they have good guides on their website: https://www.gitkraken.com/resources/learn-git
If you stick to each person working on their own assignment, I've found that even the students who struggle the most in intro programming classes pick up the very basics of version control fairly easily.
git clone https://forkurl
cd forkurl
git add .
git commit -m "Description of revisions"
git push
That is literally all they need to learn. If command-line is too intimidating for students, GitKraken is a good, cross-platform GUI application for version control.
It gets more complicated when multiple people are working on the same project, but if you avoid that, it shouldn't be too hard. If you use GitHub Classroom they can even skip the first step.
Worth noting that Git is not a backup solution. Git is a Version Control System which will help keep your project organized and allow you to "commit" working code without risking later changes breaking it forever. For any serious project, you should be using both.
GitHub has an official desktop client which may make interfacing with it easier for a beginner. I've also been a big fan of GitKraken for the way it represents branches visually.
Give a try to GitFiend
It is new and so fresh. Very good ideas and nice UI.
It is in early stage so I would not recommend it for production development, in that case I would say GitKraken.
In case you finally give a try to GitFiend, give feedback to the creators. It could really becomes in a good app in the future.
If you want to get fluent with git command line, use this website. It's kinda the ultimate source of info and tutorials imo.
If you want to just use a GUI, I heavily recommend GitKraken. Half the people at my web development day job use it extensively and it can be used for free in small groups last I checked.
Pushing/pulling to/from GitHub between a laptop and desktop is exactly what I do. Works great for me. No complaints. :-)
I would start by finding a few projects that sound cool to you and reaching out to the person(s) running it and asking how it is you can help by offering to translate it.
GitHub/Git can be pretty intimidating at first but there's a lot of tools/tutorials out there now that can help walk you through how to use it.
Git is a tool for version control management normally used by programmers. GitHub is a popular hosting company for Git. This is a pretty good 20 minute walk through but also keep in mind there are now plenty of tools made that let you do it using a graphical interface like you are probably used to using with most software such as GitKraken
Well the fact that you're looking for someone with GitKraken experience is awesome! I hope you are able to find someone to help you with your project!
​
For those needing a referral here you go! https://www.gitkraken.com/invite/q6gYskHK
>https://www.gitkraken.com/privacy
Can you clarify? I see "Additionally, the Company does not store any user’s repository data. Git repository data is stored either on the user’s local machine or on the user’s remote repository hosting service of choice."
That seems to be the exact opposite of what you said.
​
There's Glo Boards, but I don't see how they can track your issues if you don't give them access, and it's different from their git client.
The idea of GDPR is solid, but to say that its 'pretty easy' is fairly easily disproven. We can probably point to most popular development/hosting platforms and go through how they're not GDPR compliant-- despite not profiting of of private data.
Even Github and GitLab are in a somewhat questionable area, with git history including personal information (e.g: gitlab-ce#42972 and gittorrent, and gitkraken)
The authors of git did not collect private data as a business model. Changing the commit information after the fact is possible, but pretty annoying. There's all sorts of little things that apply to everyone, but complicates things: log retention, backups, data anonymization. Do you even consider how Slack and Email fit into this? GDPR doesn't exclude them-- and I have multiple lawyers concerned with personal data in company-owned communications data.
>I am also willing to learn, what kind of client are you using?
>Still I would say it doesn't hurt to at least try the CLI once so you get a good foundation when something goes wrong.
I know how to perform git related tasks through CLI. I just don't use it (because GUI) and I believe that most serious people don't use CLI as well.
>Think it might really come down to preferences.
Personal preference shouldn't be considered as "Best Practices".
>Also it allows you to interact with remote repositories on machines you SSHed into and have no possibility to kick start a UI.
OK. This is just a special case. I also use the CLI if I want to send instructions to some other dev with whom we are sharing a repo. Obviously these specific cases (and I huess several more exceptions) are not "Best Practices. :\
If you download GitKraken, it makes managing your git repo much more intuitive for the not command line inclined. You get a nice visual tree of all your commits and can do everything you'll need to do in your day to day work through it.
Then, you don't need to use any of those extra features, it just becomes a place to store backups, but, if you decide you want those features, they are there and ready.
​
Namely, Lets say you are working on a feature, and you aren't sure if method A or B is better. You can create a branch, try method A (including several check ins along the way as you get bits working), then if you decide maybe it isn't working out, go back to your main branch, create a new branch for B and try it that way. You can then easily switch back and forth between branches to compare how the two methods are working.
​
At the end, just fast forward main to the tip of whatever branch you decide to go with, delete the branches (or not) and continue working.
​
​
Use git, hands down. It stores a history of all changes which can save you so much trouble. If a collaborator broke something in dropbox it could potentially be a big hassle to fix, but with git you can undo whatever change was made.
​
There is a slight learning curve but it's absolutely worth it. You can use a program to make working with it much easier; I love gitkraken, it's free and cross platform:
I use Git for version control (in Godot and elsewhere) and it works great. I highly recommend GitKraken which is a very nice Git client that displays the history in a visual and intuitive way.
If you want to work on a project in teams, I also recommend checking out VS Code (not VS) with the Live Share extension, basically it's Google Docs but for code.
After years with SourceTree and experiencing its continued powered descent towards terrain, we switched to GitKraken a year ago for a small team. Haven't looked back since; good software, and the suppiort has been great on the two occasions I've interacted with them. This wizened CLI warrior finds his Git interactions split about 50-50 now between the CLI and GK. Highly recommended.
It also does a good job with Git Flow, too, which is another point in its favour.
Do note that we're an all-Mac shop; they do support Windows and Linux but I can't speak to the GitKraken UX on those.
okay. So you're quite new at this stuff.
You need to download a Java IDE and see if you can get a program to compile and run. I'd suggest Eclipse, but IntelliJ is also excellent.
Then make an account on GitHub and tell me your account name (PM me). I'll make a team and add you to it. You should get an email from GitHub about this. Github is also good at sending messages back and forth. I don't think I'll teach you how to use git, we'll just use Github as a place to store code and track changes and communicate. You can learn as much or as little about git as you want to on your own. If you do want to learn git, Eclipse really does not work well with it, though IntelliJ does. I use the command line for git, and for GUI GitKraken is probably the best.
Then we'll load a graphics package called HSA2 and use that since it's easy to work with and one can start programming graphics right away.
Unless you have a better idea - something specific that you want to program - we'll then make some sort of space shooter program. This will teach a fair bit about objects (and arraylists).
We'll start with a spaceship(a rectangle to start with) and one laser, then get it moving, then make it an object, then make a bunch in an array list. Next we'll make enemies. If we have different types of enemies (objects), then you can see how subclasses work. We'll make powerups too. Those will be another type of object. (Hmm... I should try and have multiple constructors so you can see how to use those).
We won't be learning about event listeners, since HSA2 hides all of that so that students can start programming interactive graphics right away. After HSA2 one can easily switch to Swing graphics since all of the graphics commands are the same.
After I've taught you what you want to learn, I might try this with others, but I wouldn't be able to handle more than 5 people at once.
Seems this contest you need to use referrals. Just creating the account does nothing.
Once a second person signs up you both are entered into the contest.
Here is mine.
gitkraken is pretty cool. You also have to remember that linux is a minority OS. The other thing is that linux is more open source so it's not going to get as much love as windows would. You can also look into git plugins for your text editor like gitlens for vscode.
I might catch some flak for suggesting a GUI for working with git, but I was in the same boat as you. I highly recommend getting something like GitKraken which helps you have a clear representation of what is going on with your code to really understand the fundamentals.
Once you are more comfortable with commiting, pushing, branches, pull requests, stashing, etc then you can simplify things (and save time) by just typing the commands. Git is as lot to take in, so I highly suggest breaking up what you are trying to learn and take it a chunk at a time. :)
What's the context of the class? Is it an introductory programming course? Software Engineering? Something else?
For introductory programmers, I've used two different approaches:
Have everyone install GitKraken and teach them how to: fork and clone (from GitHub), stage and commit, and push (back onto GitHub). Students picked this up very quickly and I rarely had any problems.
In another introductory class (on C++ that used predominantly nix command line), I taught them the same processes (fork and clone, add and commit, push). Literally every assignment began with them forking my repo, then cloning it into their *nix workstation. Even the students who struggle mightily with programming learned those steps pretty quickly because of the repetition. The only problem I run into fairly regularly is when students forget to fork before cloning (and therefore clone *my repo rather than their fork of it) so when it comes time to push, they get an error message since they don't have write permission to my repo. In those cases, I posted a FAQ that has step-by-step solutions to those kinds of problems (in this case, removing the remote origin then forking and setting a new remote origin to the fork).
Both approaches work fine and I'll continue using either, depending on whether the class predominantly uses GUI (#1) or CLI (#2).
For learning Git myself, I essentially started with command-line git and just picked up new commands as I needed them. I also try to keep version control of all my educational materials and even stuff like my research scripts and papers.
If you want to teach your students more in-depth features of Git, such as branching, merging, rebasing, etc. it is easiest to do so in the context of a collaborative programming project. You may also consider involving students in actual FOSS projects.
For team based projects I recommend having a look at the client gitkraken. It has a really great visualisation of the git log. lets you really see all commits and contributions. also has native support for git-flow, a git workflow i highly recommend working with.
I know you mentioned you like GitHub desktop, but have you tried Git Kraken? Great free GUI tool for maintaining Git repositories...maybe give that a try and see if t works better. I know when I used GitHub desktop, I didn't really like the UI...Git Kraken gave me way better options...
Edit: Link
GitKraken is cross-platform on Linux, Windows, and Mac (runs on Electron) -- and it's responsive. I've been using GK for almost a year or so. I've honestly had no problems with it, and their devs are definitely on top of squashing blocking bugs.
A user below mentioned that it's slow. The only time I've experienced this is when my repo or repo history is absolutely massive. That was a sign to me that I should look into optimizing my repo.
I highly recommend it, and also recommend reading their release notes. They're pretty hilarious.
Btw, there are super cool tools that make working with github a lot easier, especially if you don't want to put a lot of time into learning it. For example, use the github desktop client (https://desktop.github.com/ for mac or windows) or gitkraken (https://www.gitkraken.com/ windows, linux, mac), they will help a lot!
For a central server gitlab or gogs would be my suggestion.
For desktop GUI, I would suggest GitKraken.
I also highly recommend learning the usual git commands.
I can't tell you how many times git rebase
saved my bacon.
Most likely not.
I highly recommend making an account at GitHub and learning how to properly use all of the Git commands from a terminal.
If you want to use a GUI, check out GitKracken once you have a complete understanding to the basics of Git.
Not sure what GUI you were using, but I've found I like GitKraken a whole lot and I hardly ever have to fall back to the commandline with it. Does still require a decent understanding of branches, etc., but it's the cleanest Git interface I've found outside of GitHub Desktop's decent but oversimplified version.
GitKraken. It's beatiful but honestly I'm struggling understanding it after 3 days of use. Today it ended up creating a bunch of stashes and local indexes that I never asked it to do. But I guess as with any tool it's just about learning to use it properly
edit: It's not :D . Anyway...