Note:
Git is a powerful version control system. This page presents a very simplified version of how to use it to track the changes to your files.
"Locations" of files in a git project, and frequently used git commands
Conceptually, there are four different areas that files and changes to files can be in a Git project. I have used quotes around the word locations because they are not necessarily physical locations within the file system on your computer. Git does the bookkeeping to maintain the status of the files. It stores that information within the hidden .git folder in the main folder of your project.
The Working Directory is the folder that contains the git project. Any folders inside the project directory can be considered to be part of the Working Directory. The local repository has the same directory structure as the Working Directory.
The presence of a .gitignore file in the root of the Working Directory over-rules this behaviour. Any file or directory in the .gitignore file is invisible to git. This is useful for purposes like testing. You can put the name of a test sub-directory in .gitignore and git will not pay attention to it. The same applies to files whose names are included in the .gitignore file.
The staging area is a place where you can group the items that you want to include in a commit. For an individual file, you can stage some or all the changes to be included in a commit.
The local repository is the set of committed changes that git has tracked. The term "repository" is often shortened to "repo".
In a similar way that SIL's Language Depot works with FLEx, or Scripture Forge works with Paratext, your local git program can use Github (or Gitlab, Codeberg, Bitbucket, etc) to store your repository remotely.
The contents of the remote repository may not be identical in content to your local repo. Until you push your commits to the remote repo, it won't have all the commits that your local repo has. As well, because more than one person may be making commits to it, it may have commits that your local repo doesn't.
The Git "branch" command allows you to make a series of experimental changes that may or may not be included in the final repo. The use of the branch command is not covered here, but there are many tutorials available describing how it is used.
The captions inside the arrows are the git commands that you can enter at the bash command line. These commands move the information in the files between the "locations".
The Git Gui program allows you to carry out the git commands using mouse clicks on buttons and items, or by selecting items from the command menu. You will probably not use the command line itself in your work.
The Git Gui program is documented on the next page to do a couple of sample commits, illustrating some of its functionality.