The following three videos by David Mahler are a decent introduction to Git version control system and teach you the key concepts of Git in a illustrative way. Runtime is 30m each for a total of 1.5h. I wish I started to learn Git this way back then.
In addition, the below book, the visual overview of the most used Git commands and lastly the visual playground below are helpful too. And.. Git's very good documentation as the one source of truth as reference.
There are a number of configuration files that git offers and that let user customize their git experience in great depth. As usual great powers comes with great responsibility. Not all configuration files and options are mentioned here, there are many more.
First Time Git setup
This step is really important as you set some default behaviour and especially you have to set your identity! This last step - configuring your identity - is neglected very often. Please, don't. Now go and read first time git setup!
Keep in mind that you just set your global identity. Almost every configuration key is also changeable on repo level. This means while your global identity may be "MrCool firstname.lastname@example.org", you can still have another identity on a per repo basis, i.e. when implementing stuff for work. You can set your identity within the repo directory by issuing:
git config user.name "Max Mustermann" git config user.email email@example.com
As you can see, the same command is run, but
--global is left out. Now this
local setting can be found in the config file of the repo,
the global configuration file is found at
Unsure what your identity is in the current repo? Just run
git config user.email respectively.
Repo-local Configuration Files
.gitignore - Specifies intentionally untracked files to ignore
A gitignore file specifies intentionally untracked files that Git should ignore, see man gitignore or in the git-book. This is valuable if you have some local temporary files, that should not get committed except if forced. Other examples may include a vendor library that is used that is versioned somewhere else and gets installed as a dependency.
.gitattributes - Defining attributes per path
The Thing About Git (15' read)
Often beginners find it oddly strange that there is an index/staging area in Git
and are not aware for what this thing can be used. Other VCS do not have this.
Nevertheless it's not an addition just to make Git more complicated and to
bother the developers. The "Tangled Working Copy Problem" illustrates why
this concept makes sense and how you should use it to your favor. There's one
important option tot
git add that most beginners overlook (and tutorials
almost never teach you), e.g.
Try the following form of adding files to the index next you have to do that and
see what happens!
git add --patch somepathspec or
git add -p somepathspec