Thursday 19 July 2018

how to uses the git commands

Basic Snapshot ting 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)

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 [branchName] 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 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 apply --reject --whitespace=fix <patch file name> //to force git apply if white spaces are present and apply patch even merge conflict is there(Except the file which has merge conflict other files changes will be applied to WS).
git stash Stash changes in a dirty working directory
git stash clear Remove all stashed entries

Git Commands to be used carefully(especially commands with "git reset" should be used carefully, because we may loose the code changes permanently):

->  (use "git reset HEAD^1 <file>..." to unstage after doing "bee commit ." if you want to unstage the commit.
"staged" files will be shown in green color
"unstaged" files will be in red color and not staged for commit(i,e have to do "git add" to move for staged commit).

-> git reset HEAD <file_name> to unstage (to exclude file from commit, be carefully don't use without "file name")
-> git reset --hard <sha id> (sha id can be get by "gitk" and select proper sha id) // "git reset" is to point particular label.

Note: "git reset --hard" will make the HEAD to point to particular label by removing all the changes done in work space).

-> git bisect good (need to check the usage of the command)
-> git reset --soft HEAD~1 (To make head to point to previous label without losing the currently modified files)
-> git reset HEAD^ filename git checkout filename
-> git reset HEAD^ system-build/regi/* (To reset the particular files/directories to previous label).

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 diff [source branch] [target branch} Preview changes before merging

Reference link:

https://git-scm.com/docs