diff --git a/Git-Basics/README.md b/Git-Basics/README.md new file mode 100644 index 00000000..9bc8bd91 --- /dev/null +++ b/Git-Basics/README.md @@ -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. +2. +3. +4. +5. +6. And then Contiune Next > Next > Next > Install +7. + + + + + + + + ### 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 |