A Beginner's Guide to Using Git
Waqas Ahmad
Quality Assurance Specialist | Data Analyst | VBA | Power BI | G-Suite | Automation | Lean Six Sigma | ISO 9001:2015 QMS Lead Auditor
Introduction
Git is an essential tool for version control, widely used in software development to track changes, collaborate with others, and manage project versions. In this guide, we'll walk through the basics of Git, from installation to handling merge conflicts and using GitHub Pages.
Installing Git
First, you need to install Git on your computer. Git is available on for macOS, Windows and Linux. Download the installer for your operating system from here
Cloning a Git Repository from GitHub
A repository is the most basic element of GitHub. It's a place where you can store your code, your files, and each file's revision history. To work on any project, you can clone that repository from GitHub using the following code in command line.
git clone https://github.com/username/repository.git
Replace username with the GitHub username and repository with the name of the repository.
Adding a File Using Command Prompt
You can create a new file using the echo command in Command Prompt:
echo Your content here > filename.txt
For example:
echo Hello, world! > example.txt
Using git add and git commit
After creating or modifying files, you need to stage and commit them:
Staged Changes means the changes that you have decided to commit.If you make more changes to files after staging them, then those are unstaged changes.
git commit -m "Add example.txt with Hello, world! content"
You can also stage and commit changes in one step using:
git commit -am "Add and commit example.txt"
Handling Merge Conflicts
Merge conflicts occur when changes from different branches conflict with each other. Here’s a typical scenario:
1. Create and switch to a new branch:
git checkout -b feature-branch
2. Make changes and commit them:
echo Feature content > feature.txt
git add feature.txt
git commit -m "Add feature content"
3. Switch back to the main branch and make conflicting changes:
git checkout main
echo Main content > feature.txt
git add feature.txt
git commit -m "Add main content"
4. **Merge the feature branch into the main branch:**
git merge feature-branch
If there’s a conflict, you'll see a message like:
领英推荐
Auto-merging feature.txt
CONFLICT (content): Merge conflict in feature.txt
Automatic merge failed; fix conflicts and then commit the result.
The conflicting file will look like this:
#Error
<<<<<<<<< HEAD
Main content
=========
Feature content
>>>>>>>>> feature-branch
To resolve the conflict, choose the content you want to keep, delete the conflict markers (`<<<<<<<<<`, ========, >>>>>>>>>), and commit the resolved file:
git add feature.txt
git commit -m "Resolve merge conflict"
Git Log
To view the commit history, use:
git log
This shows a list of commits, including their hashes, author, date, and commit messages. The commit hash is a unique identifier for each commit.
Git Reset
Git reset allows you to undo changes. For example, to unstage a file:
git reset HEAD example.txt
To revert to a previous commit:
git reset --hard commit-hash
Replace commit-hash with the actual commit hash.
Branching
Branches allow you to work on different features simultaneously. Create and switch to a new branch:
git checkout -b new-branch
Switch back to the main branch:
git checkout master
after checkout we need to specify the branch name here we used master to move to master branch.
Forking and Pull Requests
Forking a repository creates a copy under your GitHub account. To fork a repository, click the "Fork" button on the repository's GitHub page. After making changes, submit a pull request to propose your changes to the original repository.
GitHub Pages
GitHub Pages is a service that hosts static websites directly from a GitHub repository. To set up a GitHub Pages site:
1. Create a repository named username.github.io.
2. Add an index.html file to the repository.
3. Push the changes to GitHub.
Your site will be available at https://username.github.io.
Conclusion
Git is a powerful tool for version control, and mastering its basics is essential for any developer. This guide covers the fundamental commands and concepts, providing a solid foundation for further exploration. Happy coding!
Author: Waqas Ahmad
My Github Profile: Waqas-ahmad2