-
Notifications
You must be signed in to change notification settings - Fork 0
GITHUB
Git Tutorial | Why do we need Git? | Applications of GIT (educba.com) Github Tutorial | A Quick glance of Self Guide to Learn Github (educba.com) Git Tutorial (tutorialspoint.com)
Git is a distributed version control system (DVCS) tool that supports distributed non-linear workflows by providing data assurance for developing quality software.
-
Git – version control system
-
Git software, Github Server
-
git hash-object –stdin –w Creates a new dir hash =folder + file name
-
Hash hexadecimal value (40 char)
-
Git object structure content + obj type + length =hash
-
.git - Objects blog, tree, commit, annotate tier
-
4 type of objects
-
blog, tree, commit, annotate tier
-
blog:
-
git cat file –p
-
-s size -
-t type -
To check any files in staging use
-
Git ls-files –s
-
To move tree to staging area
-
Git read-tree
-
To move tree to Working dir
-
Git checkout-index –a (index=staging)
SCM = Source code management (or) Software configuration management SCM or VCS is divided into 2 types. There are
- CVCS -- Centralized version control system SVN
- DVCS -- Distributed version control system Git, GIthub, BitBucket etc
Life cycle or workflow of Git:
- Step 1 − You modify a file from the working directory.
- Step 2 − You add these files to the staging area.
Git add filename (or) git add .[. Will add all files in the dir] - Step 3 − You perform commit operation that moves the files from the staging area. After push operation, it stores the changes permanently to the Git repository.
Git commit –m “message or comment” - Multiline commit message:
Git commit –m - Above command open in editior so we can add multi-line commit message
- Git configuration
o Git config Get and set configuration variables that control all facets of how Git looks and operates.
- Set the name:
$git config --global user.name "User name" - Set the email:
$git config --global user.email "your github e-mail" - Set the default editor:
$git config --global core.editor <editor-name>: This command is used to set your default text editor for Git. Check the setting: -
$git config --list: This command is used to display a list of all the Git configurations set on your system. -
$git config --global color.ui true or git config --global color.ui false: This command is used to enable or disable color output in Git.
o Git alias Set up an alias for each command:
$git config --global alias.co checkout$git config --global alias.br branch$git config --global alias.ci commit$git config --global alias.st status
o Git init
- Create a local repository:
$ git init
o Git clone
- Make a local copy of the server repository:
$ git clone
o Git add
Add a file to staging (Index) area: $git add Filename
o Add all files of a repo to staging (Index) area: $git add*
o Gitcommit
- Record or snapshots the file permanently in the version history with a message:
$git commit -m " Commit Message"
o Git diff
- Track the changes that have not been staged:
$git diff - Track the changes that have staged but not committed:
$git diff –staged - Track the changes after committing a file:
$git diff HEADTrack the changes between two commits: $git diff Git Diff Branches:$git diff < branch 2>
o Git status
Display the state of the working directory and the staging area: $git status
o Git show Shows objects: $git show
o Git log
- Display the most recent commits and the status of the head:
$git log - Display the output as one commit per line:
$git log –oneline - Displays the files that have been modified:
$git log –stat - Display the modified files with location:
$git log –p - To check only specific logs:
$git log -3 - Shows the full details of logs:
$git reflog
o Git blame
- Display the modification on each line of a file:
$git blame <file name>
o .gitignore Specify intentionally untracked files that Git should ignore. Create .gitignore:
-
$touch .gitignoreList the ignored files: $git ls-files -i --exclude-standard
o Git branch Create branch:
- To know on which branch you are working:
$git branch - List Branch:
$git branch --list - Delete a Branch:
$git branch -d <branch name> - Delete a remote Branch:
$git push origin -delete - Rename Branch:
$git branch -m
o Git checkout Switch between branches in a repository.
- Switch to a particular branch:
$git checkout - Create a new branch and switch to it:
$git checkout –b - Checkout a Remote branch:
$git checkout
o Git stash
- Switch branches without committing the current branch. Stash current work:
$git stash - Saving stashes with a message:
$git stash save "" - Check the stored stashes:
$git stash list - Re-apply the changes that you just stashed:
$git stash apply - Track the stashes and their changes:
$git stash show - Re-apply the previous commits:
$ git stash pop - Delete a most recent stash from the queue:
$ git stash drop - Delete all the available stashes at once:
$ git stash clear - Stash work on a separate branch:
$ git stash branch
o Git cherry pic
- Apply the changes introduced by some existing commit:
$ git cherry-pick
o Git merge
- Merge the branches:
$git merge - Merge the specified commit to currently active branch:
$git merge
o Git rebase
- Apply a sequence of commits from distinct branches into a final commit:
$git rebaseContinue the rebasing process: - $git rebase -continue Abort the rebasing process:
-
$git rebase –skipo Git interactive rebase - Allow various operations like edit, rewrite, reorder, and more on existing commits:
$git rebase –i
o Git remote
- Check the configuration of the remote server:
$git remote –v - Add a remote for the repository:
$git remote add - Fetch the data from the remote server:
$git fetch - Remove a remote connection from the repository:
$git remote rm - Rename remote server:
$git remote rename - Show additional information about a particular remote:
$git remote show - Change remote:
$git remote set-url
o Git origin master
- Push data to the remote server:
$git push origin master - Pull data from remote server:
$git pull origin master
o Git push
- Transfer the commits from your local repository to a remote server. Push data to the remote server:
$git push origin master - Force push data:
$git push –f - Delete a remote branch by push command:
$git push origin -delete edited
o Git pull
- Pull the data from the server:
$git pull origin master - Pull a remote branch:
$git pull
o Git fetch
- Download branches and tags from one or more repositories. Fetch the remote repository:
$git fetch< repository Url> - Fetch a specific branch:
$git fetch - Fetch all the branches simultaneously:
$git fetch –all - Synchronize the local repository:
$git fetch origin
o Git revert
- Undo the changes:
$git revert - Revert a particular commit:
$git revert
o Git reset Reset the changes:
$git reset -hard$git reset -soft$git reset –mixed
o Git rm
- Remove the files from the working tree and from the index:
$git rm <file Name> - Remove files from the Git But keep the files in your local repository:
$git rm –cached
-
$git init--> To init the git local repo -
$git clone <URL>--> To clone the repo into local repo from github -
$git remote add origin <url>--> if you want to add a remote repo to push to github -
$git remote remove origin--> if the origin file already exit and showing error use git remove and use above step -
$git push origin --delete <branch_name>--> to remove or delete a remote branch -
$git push -u origin master --> origin= remote repo, master = local branch -
$git branch--> List all branches in a repository -
$git branch new_branch--> Create a new branch -
$git checkout existing_branch--> Switch to an existing branch -
$git branch -d branch_to_delete--> Delete a branch -
$git branch -D branch_to_delete--> Force delete a branch -
$git branch –r--> List all remote branches -
$git branch –a--> to check all the branches in remote repo and local repo -
$git checkout -b local_branch origin/remote_branch--> Checkout a remote branch -
$git push origin local_branch:remote_branch--> Push changes from a local branch to a remote branch -
$git push origin :remote_branch--> Delete a remote branch -
$git fetch--> to check any changes b/w local and remote repo -
$git pull--> to pull the changes from the github repo -
$git rebase other_branch--> Rebase a branch onto the latest version of another branch -
$git rebase -i HEAD~5--> Interactively rebase a branch to clean up the commit history -
$git rebase -p <other_branch>--> Rebase a branch and preserve merges -
$git rebase –abort--> Abort a rebase operation -
$git rebase –continue--> Continue a rebase operation after resolving conflicts -
$git merge <feature_branch>--> Merge a branch into the current branch -
$git merge --ff-only <feature_branch>--> Fast-forward merge -
$git merge feature_branch--> Non-fast-forward merge -
$git merge –abort--> Abort a merge operation -
$git fsck--> check the integrity of your Git repository and detect any issues with the objects and references -
$git bisect--> to search for the commit that introduced a bug in your code
Multi branch pull and push from remote to local repo:
-
$git clone –mirror <Old_Repo_URL>- It will clone all the branches from repo to local repo -
$git push –mirror <New_Repo_URL>- To push all branch from local to the github repo