|
|
|
@ -0,0 +1,129 @@
|
|
|
|
|
## Basics of GIT for web-dev beginners👶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## What is `Git`?
|
|
|
|
|
1. Git is a distributed version control system.
|
|
|
|
|
2. The entire codebase and history is available on every developer’s 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](http://git-scm.com/download/mac) for Mac
|
|
|
|
|
* [Download](http://git-scm.com/download/win) for Windows
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Installation Process Steps:
|
|
|
|
|
1. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190359823-e421b976-515a-4565-990d-2f2e4e62977a.png"/>
|
|
|
|
|
2. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190360530-a7bfa681-47f4-4859-9b8a-4120e0cad348.png"/>
|
|
|
|
|
3. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190360760-30db7768-19e0-4848-a99d-a6c955e041e2.png"/>
|
|
|
|
|
4. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190360896-473e1e54-f083-4b5c-a5f0-539f70469142.png"/>
|
|
|
|
|
5. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190361144-bc670a2b-b776-4867-9785-7b509d416fbb.png"/>
|
|
|
|
|
6. And then Contiune Next > Next > Next > <b>Install</b>
|
|
|
|
|
7. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190361548-4b700d85-c7d5-4d26-90e7-e5cc3ce24311.png"/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### After Installation We need To configure git using git bash
|
|
|
|
|
1. `git config --global user.name 'YourName'`
|
|
|
|
|
2. `git config --global user.email 'YourEmail'`
|
|
|
|
|
___
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Git Commands
|
|
|
|
|
___
|
|
|
|
|
|
|
|
|
|
### Getting & Creating Projects
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| ------- | ----------- |
|
|
|
|
|
| `git init` | Initialize a local Git repository |
|
|
|
|
|
| `git clone ssh://git@github.com/[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://git@github.com/[username]/[repository-name].git` | Add a remote repository |
|
|
|
|
|
| `git remote set-url origin ssh://git@github.com/[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 |
|