MET Institute of Engineering, Nashik
What is Git
?
1. Git is a distributed version control system.
2. The entire codebase and history is available on every developers computer,
which allows for easy branching and merging.
3. It is used as Version Control System (VCS) for tracking changes in computer files.
- Distributed version control
- Coordinates work between multiple developers
- Who made what changes and when
- Revert back at any time
- Local & remote repos
CONCEPTS OF GIT
- Keeps track of code history
- Takes "snapshots" of your files
- You decide when to take a snapshot by making a "commit"
- You can visit any snapshot at any time
- You can stage files before committing
Difference Between Git & GitHub
Git |
GitHub |
Git is a software |
GitHub is a cloud service |
Git is installed locally on the system |
GitHub is hosted on the web |
It is command-line tool |
It is a graphical user interface |
Git is maintained by linux |
GitHub is maintained by Microsoft |
It is focused on version control and code sharing |
It is focused on centralized source code hosting |
Git is open-source licensed |
GitHub includes a free-tier and pay-for-use tier |
Git was released in 2005 |
GitHub was released in 2008 |
GIT Installation
- Linux(Debian)
$sudo apt-get install git
- Linux(Fedora)
$sudo yum install git
-
Download for Mac
-
Download for Windows
Installation Process Steps:
-
-
-
-
-
- And then Contiune Next > Next > Next > Install
-
After Installation We need To configure git using git bash
git config --global user.name 'YourName'
git config --global user.email 'YourEmail'
Git Commands
Getting & Creating Projects
Command |
Description |
git init |
Initialize a local Git repository |
git clone ssh://[email protected]/[username]/[repository-name].git |
Create a local copy of a remote repository |
Basic Snapshotting
Command |
Description |
git status |
Check status |
git add [file-name.txt] |
Add a file to the staging area |
git add -A |
Add all new and changed files to the staging area |
git commit -m "[commit message]" |
Commit changes |
git rm -r [file-name.txt] |
Remove a file (or folder) |
git push |
Push To Remote Repository |
git pull |
Pull Latest Changes From Remote Repository |
Branching & Merging
Command |
Description |
git branch |
List branches (the asterisk denotes the current branch) |
git branch -a |
List all branches (local and remote) |
git branch [branch name] |
Create a new branch |
git branch -D [branch name] |
Delete a branch |
git push origin --delete [branch name] |
Delete a remote branch |
git checkout -b [branch name] |
Create a new branch and switch to it |
git checkout -b [branch name] origin/[branch name] |
Clone a remote branch and switch to it |
git branch -m [old branch name] [new branch name] |
Rename a local branch |
git checkout [branch name] |
Switch to a branch |
git checkout - |
Switch to the branch last checked out |
git checkout -- [file-name.txt] |
Discard changes to a file |
git merge [branch name] |
Merge a branch into the active branch |
git merge [source branch] [target branch] |
Merge a branch into a target branch |
git stash |
Stash changes in a dirty working directory |
git stash clear |
Remove all stashed entries |
Sharing & Updating Projects
Command |
Description |
git push origin [branch name] |
Push a branch to your remote repository |
git push -u origin [branch name] |
Push changes to remote repository (and remember the branch) |
git push |
Push changes to remote repository (remembered branch) |
git push origin --delete [branch name] |
Delete a remote branch |
git pull |
Update local repository to the newest commit |
git pull origin [branch name] |
Pull changes from remote repository |
git remote add origin ssh://[email protected]/[username]/[repository-name].git |
Add a remote repository |
git remote set-url origin ssh://[email protected]/[username]/[repository-name].git |
Set a repository's origin branch to SSH |
Inspection & Comparison
Command |
Description |
git log |
View changes |
git log --summary |
View changes (detailed) |
git log --oneline |
View changes (briefly) |
git diff [source branch] [target branch] |
Preview changes before merging |