Git is a version control system (VCS) that manages changes to documents, programs, websites, and other applications among multiple developers working on the same files, created by Linus Torvalds in 2005. It is the most popular VCS as of now for software teams because it's fast, flexible, and free to use. Nearly everything you do in Git requires local files, meaning you don't need it from another computer on your network. Unfortunately, Git has a steep learning curve, full of many commands with a complex and sometimes irrelevant terminology, so it's difficult for newcomers to utilize this system like an expert, even if they only need the basics of Git for their project.
Git consists of three main states that your files reside in: committed, modified, and staged. The way Git saves data from files is like taking a snapshot from a camera. It takes a "picture" of the files you've modified using the command git add. To record the data that was added from the snapshot, the command git commit commits that data and moves the branch pointer into the new branch the developer was working on. Before pushing your branch, you should pull the branch currently in the repository to update your own using git pull. To push all that data that was committed, the command git push pushes the branch into the repository. Make sure not to push broken code, or else it could ruin the entire project if other people working on it pulls from your branch.
Conflicts with files that you and another team member worked on when merging your branch that person can create a huge problem and becomes difficult to resolve. Conflicted files causing problems stem from the fact that you need to communicate with your team member to know which specific data should the file accept, and even so, Git's complex terminology can lead to using the wrong command to accept the right data. However, when you resolve it, you feel a sense of relief and accomplishment knowing you utilized Git well.
We use Git in conjunction with BitBucket to push our code to the project's Git repository. Our process follows: