Git basic and important commands…

Creating Git local repository and connecting with remote repository:

 Git init
 Git remote add origin <url>
 Git config --global user.email <anyemail>.com
 Git config --global user.name <anyname>
 Git push --set-upstream origin master 

Cloning a repository:

git clone <repository_git_url>

Creating new remote branch:

git checkout -b <branch_name> 
git push origin <branch_name>

Delete a remote branch:

git push origin :<branch_name>

Delete a local Branch:

git branch -d branch_name
git branch -D branch_name

Note: -D deletes the branch even if the branch is not pushed yet ( its similar to –delete –force)

How to change the remote URL:

git remote set-url origin <url>

How to reset local changes:

git reset --hard origin/master

How to revert last commmit:

use below command to get commit id:

git log

revert:

 git revert <commit hash> 

How to checkout to different branch:

git checkout <branchname>

To push an old commit as final head

git checkout <commit-id>

//now make changes and commit it

git branch <new_branchname> //(create a new branch)

git push -f origin <new_branchname>:master

git checkout master

git branch -d <new_branchname>  // remove new temp branch

If merge conflic come , then just backup and delete the local repo and clone it again. CHeck whether you have the indended changes

How to test a pull request:

git remote add origin <url>
git pull
git fetch origin pull/<id>/head:branch-name
git checkout branch-name

Eg:

To test the below pull request:

copy the ID : 1479

copy the branch-name: fix-incorrect-override

use the below command:

git remote add origin https://github.com/DefectDojo/django-DefectDojo.git

git pull

git fetch origin pull/1479/head:fix-incorrect-override

git checkout fix-incorrect-override 

Git ignore:

Sometimes you need to prevent git from uploading sensitive files to remote repository.

This could be done by creating a gitignore file that tells git not to track the sensitive files.

To create gitignore file , open git bash and enter below command

 touch .gitignore   //will create the gitignore file

If files are already tracked, we should first untrack it else the rules in gitignore won’t come to effect.

git rm --cached <filename>

Now manually add files and folders to the .gitignore file

So, if we do git add . , the files add in .gitignore won’t be tracked

Note:

.gitignore file will get checked in and the rule gets applicable to all the users of the project

If you want to create rules locally only for you, then use your favorite text editor to open the file called .git/info/exclude within the root of your Git repository, to create ignore rules that need not be checked in. Any rule you add here will not be checked in, and will only ignore files for your local repository.

If you want to create git ignore globally for all git projects in your system, use below steps:

# Declare the global .gitignore
git config --global core.excludesfile ~/.gitignore_global

# Create the .gitignore_global file
touch .gitignore_global

# Go into edit mode so you can add the unwanted file listing
vim .gitignore_global

Renaming a remote branch:

# Rename branch locally  
 #if you are in a different branch     
 git branch -m old_branch new_branch 
OR
 #if already in the old branch 
 git branch -m new_branch  

# Delete the old branch      
git push origin :old_branch  

# Push the new branch, set local branch to track the new remote  
git push --set-upstream origin new_branch