This is a basic git tutorial made exclusively for first year SMVDU students.
Git is a software that allows you to keep track of changes made to a project over time. Git works by recording the changes you make to a project, storing those changes, then allowing you to reference them as needed.
1. Open Terminal
2.$git config --global user.name "Aditya Sharma"
3. Confirm that you have set the Git username correctly:-
$ git config --global user.name
Aditya Sharma
1. Open Terminal
2. Set an email address in Git. You can use your GitHub-provided no-reply email address or any email address:-
$ git config --global user.email "[email protected]"
3. Confirm that you have set the email address correctly in Git:-
$ git config --global user.email
[email protected]
A git project can be divided into three parts:-
- Working Directory - This is the folder where we create, edit, delete and organize files.
- Staging Area - Changes that we make in the working directory are listed here.
- Repository - Git permanently stores those changes as different versions of the project.
The Git workflow consists of editing files in the working directory, adding files to the staging area, and saving changes to a Git repository. In Git, we save changes with a commit.
1.git init
- The word init
means initialize. The command sets up all the tools Git needs to begin tracking changes made to the project.
2.git status
- We can check the status of the changes made to the contents of the working directory with this command.
3.git add filename
or git add .
- Our files need to be added to the staging area in order for git to start tracking them.
4.git diff filename
- We can check the differences between the files in the working directory and the staging area with this command.
5.git commit -m "your commit message"
- A commit is the last step in our Git workflow. This permanently stores file changes from the staging area in the repository.
Rules for commit messages :-
- Should be brief
- Must be in quotation marks
- Written in the present tense
6.git log
- Used to refer back to an earlier version of a project.
When working on a Git project, sometimes we make changes that we want to revert or get rid of. Git offers a few eraser-like features that allow us to undo mistakes during project creation.
1.git show HEAD
- In Git, the commit you are currently on is known as the HEAD commit. In many cases, the most recently made commit is the HEAD commit.
2.git checkout HEAD filename
- This will restore the file in your working directory to look exactly as it did when you last made a commit.
3.git reset HEAD filename
- We can unstage files from the staging area using this command. It resets the file in the staging area to be the same as the HEAD commit. It does not discard file changes from the working directory, it just removes them from the staging area.
4.git reset commit_SHA
- This command works by using the first 7 characters of the SHA of a previous commit. HEAD
is now set to that previous commit.
Till now we worked in a single branch called master
. Git allows us to create branches to experiment with versions of a project. We can create a new branch and make some changes to that branch only. It will have no effect on the master
branch until we merge our new branch to the master
branch. new_branch
is a different version of the Git project. It contains commits from master
but also has commits that master
does not have.
1.git branch
- It is used to find the branch which you are on. The *
shows you what branch you are on.
2.git branch new_branch
- This is used to create a new branch. Name your branch something that describes the purpose of the branch. Branch names cannot contain whitespaces.
3.git checkout branch_name
- You can switch between branches using this command. Once you switch to a branch and make commits on that branch they have no impact on master
branch. You can continue your workflow while master
branch stays intact.
4.git merge branch_name
- This is used to include all the changes made to the new_branch
on the master
branch. First switch to master
branch and then use git merge new_branch
.
5.git branch -d branch_name
- After a branch has been integrated into master
, it has served its purpose and can be deleted. This command will delete the specified branch from your git project.
We have worked on git as a single user till now. Git offers a suite of collaboration tools to make working with others on a project easier. This is done by using remotes
. A remote
is a shared Git repository that allows multiple collaborators to work on the same Git project from different locations. Collaborators work on the project independently, and merge changes together when they are ready to do so. It lives outside your Git project folder. Remotes can live on the web, on a shared network or even in a separate folder on your local computer.
1.git clone remote_location clone_name
- This command creates a copy of an existing repository to your local machine.
Here:-
remote_location
tells Git where to go to find the remote. This could be a web address, or a filepath.clone_name
is the name you give to the directory in which Git will clone the repository.
2.git remote -v
- Behind the scenes Git gives the remote address the name origin
, so that you can refer to it more conveniently. We can see a list of a Git project’s remotes with this command.
3.git fetch
- If changes have been made to the remote then you can use this command to bring the changes down to your local copy. This command will not merge changes from the remote into your local repository. It brings those changes onto a remote branch(origin/master
).
4.git merge origin/master
- This is used after git fetch
to integrate origin/master
into your local master
branch.
5.git push origin your_branch_name
- This pushes a local branch to the origin
remote.
6.git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
- This is used to specify a new remote upstream repository that will be synced with the fork. You can verify the new upstream repository you've specified for your fork using git remote -v
.