Skip to main content

Useful Git Commands


Git Configuration

DESCRIPTION
GIT COMMAND
Configure the author name to be used with your commits.
git config --global user.name "Sam Smith"
Configure the author email address to be used with your commits
git config --global user.email sam@example.com
Will remove user credential details from the repository
git config --local credential.helper ""
List all currently configured remote repository URLs
git remote -v
If you haven't connected your local repository to a remote server, To add a remote server to a local repository
git remote add origin

Git Commit and Push
DESCRIPTION
GIT COMMAND
Create a file name README.md with Readme content content echo "Readme content" >> README.md
List the files you've changed and those you still need to add or commit
git status
Add all or one file to staging
git add . OR git add file_name
Commit changes to head with message
git commit -m 'message'
Commit any files you've added with git add, and also commit any files you've changed since then git commit -a
Send all commits from local repository to remote repository
git push
Do a git push and sets the default remote branch for the current local branch. So any future git pull command will attempt to bring in commits from the into the current local branch git push -u
Send changes to the master branch of your remote repository
git push origin master
Push a specific branch to your remote repository
git push origin
Push all branches to your remote repository
git push --all origin


Git Checkout And Pull

DESCRIPTION
GIT COMMAND
To create a new local repository
git init
Clone a repository into a new directory
git clone repo_url
Clone a repository into a new directory and point to mentioned branch_name git clone --branch branch_name repo_url
To create a working copy of a local repository
git clone /path/to/repository
Download objects and refs from remote repository for master branch
git fetch origin master
To merge a different branch into your active branch
git merge
Fetch and merge changes on the remote server to your working directory:
git pull
View all the merge conflicts, View the conflicts against the base file, Preview changes, before merging
git diffgit diff --base git diff


Git Branch

DESCRIPTION
GIT COMMAND
List all the branches in your repository, and also tell you what branch you're currently in
git branch
Switch from one branch to another
git checkout branch_name
Create a new branch and switch to it
git checkout -b branch_name
Create a new branch from master branch and switch to it
git checkout -b branch_name master
Delete the feature branch from local repository
git branch -d
Delete a branch on your remote repository
git push origin :


Git Cleaning

DESCRIPTION
GIT COMMAND
Fetch the latest history (objects & refs) from the remote server for master branch
git fetch origin master
Clean repository to initial stage
git clean -x -d -f
Reset local repository and point your local master branch to latest history fetched from remote server
git reset --hard origin/master
To bring all changes from remote repository to local repository
git pull origin master


Other Git commands

DESCRIPTION
GIT COMMAND
You can use tagging to mark a significant change set, such as a release
git tag 1.0.0
Commit Id is the leading characters of the change set ID, up to 10, but must be unique. Get the ID using
git log
Push all tags to remote repository
git push --tags origin
If you mess up, you can replace the changes in your working tree with the last content in head:Changes already added to the index, as well as new files, will be kept
git checkout --
Search the working directory for foo() git grep "foo()"


Comments

Popular posts from this blog

Password reset too simplistic/systematic issue

Some time when we try to reset the password of our user in linux it will show as simple and systematic as below: BAD PASSWORD: it is too simplistic/systematic no matter how hard password you give it will show the same. Solution: ######### Check if your password is Ok with the below command, jino@ndz~$ echo 'D7y8HK#56r89lj&8*&^%&^%#56rlKJ!789l' | cracklib-check D7y8HK#56r89lj&8*&^%&^%#56rlKJ!789l: it is too simplistic/systematic Now Create a password with the below command : jino@ndz~$ echo $(tr -dc '[:graph:]' 7\xi%!W[y*S}g-H7W~gbEB4cv,9:E:K; You can see that this password will be ok with the cracklib-check. jino@ndz~$ echo '7\xi%!W[y*S}g-H7W~gbEB4cv,9:E:K;' | cracklib-check                 7\xi%!W[y*S}g-H7W~gbEB4cv,9:E:K;: OK Thats all, Thanks.

K8s External Secrets integration between AWS EKS and Secrets Manager(SM) using IAM Role.

What is K8s External Secrets and how it will make your life easier? Before saying about External Secrets we will say about k8s secrets and how it will work. In k8s secrets we will create key value pairs of the secrets and set this as either pod env variables or mount them as volumes to pods. For more details about k8s secrets you can check my blog http://jinojoseph.blogspot.com/2020/08/k8s-secrets-explained.html   So in this case if developers wants to change the ENV variables , then we have to edit the k8s manifest yaml file, then we have to apply the new files to the deployment. This is a tiresome process and also chances of applying to the wrong context is high if you have multiple k8s clusters for dev / stage and Prod deployments. So in-order to make this easy , we can add all the secrets that is needed in the deployment, in the AWS Secret Manager and with the help of External secrets we can fetch and create those secrets in the k8s cluster. So what is K8s external Secret? It is an

Setting /etc/hosts entries during the initial deployment of an Application using k8s yaml file

Some times we have to enter specific hosts file entries to the container running inside the POD of a kubernetes deployment during the initial deployment stage itself. If these entries are not in place, the application env variables mentioned in the yaml file , as hostnames , will not resolve to the IP address and the application will not start properly. So to make sure the /etc/hosts file entries are already there after the spin up of the POD you can add the below entries in your yaml file. cat > api-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: spec:   template:     metadata:     spec:       volumes:       containers:       - image: registryserver.jinojoseph.com:5000/jinojosephimage:v1.13         lifecycle:           postStart:             exec:               command: ["/bin/sh", "-c", "echo 10.0.1.10 namenode.jinojoseph.com >> /etc/hosts && echo 10.0.1.8 dn1.jinojoseph.com >> /etc/hosts &&