So, what else would you like to see in the course?
I can say that getting the /.gitignore to work was a real pain in the ass! This is not due to the course but the subject matter itself. If you search Stack Overflow or Cplusplus.com there are several discussions on the subject. The issue I had is that a gitignore will not affect anything that has already been uploaded as you mentioned but with VS you can’t create to a non-empty folder which means you can’t commit the initial .gitignore as this creates a master branch. Anyhow I’m positive there is an easier way than how I did it.
I think a few things may help. First I think it should be strongly recommended that people take the Github starter course which is amazing, quick and painless. This has the additional effect of teaching us that the answers are “out there” but we have to search for them. I was already using GitHub with Visual Studio 2019 but had never used a .gitignore. Understanding Git I think is fundamental to understand this novel and strange but extremely useful tool. The comments section alone indicates that many people do not understand the importance and utility of this tool by their willingness to forgo a little pain now for a lot more pain later by simply skipping it.
Also I think that there should be instructions for how to clear the git cache as it is very likely many people commit the entire contents accidentally either now or in some other project and it will serve us well to know how to do this in the future regardless. I eventually found this gem which brought my blood pressure back down to normal levels. I still cleared the entire Solution and UE4 project files and did it all over the right way just to make sure but it was not intuitive (with VS2019). TBH I think it would be more efficient to upload everything directly, make an appropriate gitignore then clear cache but that is your forte not mine.
Finally I think that there should be a tutorial on how nice it is to be able to reload from a previous save and how to make a new branch before course 98. Unreal’s Class System. In the comments section several people did Bad Things™ and my first idea was to say “Just get your last version and carry on!” but they were working on the master and I’m sure a few had to redo it all. I think it would be a perfect time to get the warm fuzzy safe feeling of knowing you have a safe version right there no matter what happens. Walk them through a save, make some changes then do something horrible to their code. Then have them reload from a happy place! Many people will lose entire projects before they learn this lesson.
Hope this wasn’t too long. I am loving the course, it really is amazing.
Thank you so much for this feedback.
I think if we get a lot of demand for Unreal specific content, that myself or maybe @sampattuzzi (as he uses a PC and I can’t run Unreal in my Virtual Machines) may add a future section on Unreal.
I don’t know if it’s in the scope of the course or not, but maybe a few words about tagging and releasing.
Ah yes, a little outside scope I think but thanks. I’ll refer to this thread if and when I add to the course in the future.
Ben, I completed this course and found my knowledge on git enriched. Thanks for that. I definitely recommend it for anyone to take it before they start your other Unreal or Unity courses, especially because you seem to use it a lot in all of your courses.
I would say it felt a bit shorter than I expected or hoped. There were also a couple of topics that were covered more in the Unreal course that I’m taking (almost done!!) that I think should be part of this one as well. Maybe split the course in two parts? Add a part II which could be more advanced?
Also you could use more training on terminal, as you say there are some things better handled there. For example your git clean -x -d -i suggestion in the Unreal course was missing from this one.
Finally, I posted another question/suggestion under the generic Unity courses Ask functionality (at the time I didn’t find the link to this forum), which I will repeat here: maybe give at least one recommendation/solution of how people can run git on a private server? or at least a private LFS storage? I myself managed to get git working (using Sourcetree no less!) on a private server running Ubuntu, but still would like to know if and how I could also set up a separate lfs tracking there as well (and is that really necessary if it’s my own server anyway and I have 1TB+ of space?).
Anyway, some of these things might be out of scope (I’ve seen your replies to other people as well on such matters) but I think this course could be so much more. I’ve been an amateur coder but now getting more into game development (thanks to you guys!) and I’ve come to realize the importance of version control for software development. Git is a powerful tool and if you guys are going to use it all the time in your courses anyway, and you hope to inspire people to become developers, you should really offer some good training on git as well. Only because you guys are good instructors
Don’t be afraid to go too deep either! Then your game courses will be even more focused and git stuff won’t be a distraction, you won’t need to include it.
Thanks so much for this feedback. I may well find time to add a little more to the course next year, including some of your feedback and maybe some Unreal content.
Before I answer the question directly, I’d like to say I’m very happy with the Git course. Not only did it give me a great introduction to git, to SourceTree, and to GitHub, but it did so starting with a workflow I actually use – already having a project or remote repo in place.
That being said, if you are looking to add content to the course, I would find a brief verbal tour-guide through SourceTree’s Action and Repository menues to be useful. Maybe that’s something I should be looking up on my own, and I’m sure I’ll eventually do that, but it feels weird to go through the course and feel ALMOST completely comfortable with everything in SourceTree. I have no idea what achiving, patching, packing, rebasing, and such things are. Which probably means I don’t need them. But if I run into trouble or something later on, should I be looking to one of these options to research solutions? Having at least a brief verbal ten-cent tour on what these options generally are and what they are for, when I should research more about them, might not be necessary but might add to a general confidence in using SourceTree. Just one lecture to go through the menu would do it, I think.
But the course is great as is, so if you don’t want to do that, I feel confident enough to use SourceTree and to research on my own eventually.
(Honestly, if you can take someone to “What is git? How do I use this git thing? Help, I made a mess of my project!” to “When would I need to rebase a repository?” I think that’s a sign you are doing a great job.)
Good call Some of those things you mentioned have nothing to do with git and are just there to help integrate with other systems and teams.
It used to be common for example that contributions to open source projects before you had things like a repository manager system would call for a “patch” that could be applied.
So a patch is sort of like a plain text version of a commit - here’s the changes/deltas to be applied at a particular point in time of the code that add or change it in ways to have the new desired effect, and formatted in a way that can be both kind of reviewed by a human as well as applied by a machine to update the source.
Some of these features won’t be found having use in hosted git repository systems like GitHub or Bitbucket, or even in some other git clients, but since SourceTree is one of the focuses of the course a quick overview of its “value add” things and whether you might actually have a need of them could be cool I think.
Of your example short list, rebasing is probably the most pertinent topic to git, and a worthwhile one to grasp for different branching strategies. I think there was a lecture on it in the course too, but for anyone new to git it can be a gnarly topic that can take a little time to grok (not because it’s really all that complex, but git just has a way of making some things appear to be IME).
I’d like to know how to use it with Blender, maybe just a quick demo of how to set the repo and the blender project so that it all goes well
Also something that gets me confused is the SSH passwords but that I can manage to read the documentation and figure out