Hi Guys !!! Hope all is well
Git Status
git status
git status -- short
Manipulate the Changes
git add file_name >> adds the file file to the stage section
git restore file_name >> discards changes to the file
git restore --staged file_name >> removes the file from the stage section
Inspecting the diffs
git diff . >> displays the not-staged changes in your working tree
git diff --staged >> displays the staged changes
git diff dev >> displays changes between the working tree and the dev branch.
You might use a commit hash or tag instead.
git diff master..dev >>displays changes between the branches master and dev
Committing
git commit -m 'Commit message'
git config --global core.editor your-editor-executable-path
git commit --amend
Using git commit --amend you can either change the last commit message or
you can add an additional change to the last commit. If you want to push your changes,
though, you have to use git push -f in either case
Switch
The switch command can be used to switch between branches.
git switch branch-name >> switches to a branch-name branch
git switch -b abc >> creates branch abc and switches to it
git switch - >> switches you to the previous branch
Checkout
git checkout [branch_name] >> works as a switch but can also move HEAD to any commit/tag as well.
So, when switching to the previous branch you just need to write
git checkout -
Switching back and forth different branches means, you only have to write
git checkout -
Branches
git branch >>> returns a list of the local branches.
Use -r to list only remote branches or -a to get them all
git branch abc >>> creates abc branch
git branch -d abc >>> deletes abc if already merged.
If not, use -D to force deletion.
Log Results
git log >>> to see the commits’ history.
git log -p >>>Display the changes alongside the commit description:
git log -2 >>> display two recent commits
git log branch-name >>>Display log for a specific branch/revision:
Filter log for a specific file(s) only (glob pattern applies here):
git log *.js # or git log branch-name:*.js
Filter commits by the author (accepts partial name):
git log --author saurabh
Filter by date:
git log --since 2019-10-01
Filter by date using dynamic date ranges (days, weeks, months, years):
git log --since 2months --until 1week
Forgot to add a file to that last commit
git add missed-file.txt
git commit --amend
Added a wrong file in the repo
git reset /assets/img/misty-and-pepper.jpg
If you have gone as far as committing that change, no need to worry.
You just need to run an extra step before:
git reset --soft HEAD~1
git reset /assets/img/misty-and-pepper.jpg
rm /assets/img/misty-and-pepper.jpg
git commit
Git's magical time-traveling
git reflog
Spelling mistake on branch name
git branch -m feature-brunch feature-branch
If you have already pushed this branch, there are a couple of extra steps required.
We need to delete the old branch from the remote and push up the new one:
git push origin --delete feature-brunch
git push origin feature-branch
Git Merge
Merging is a common practice for developers using version control systems.
Whether branches are created for testing, bug fixes, or other reasons, merging commits changes to another location.
To be more specific, merging takes the contents of a source branch and integrates them with a target branch.
In this process, only the target branch is changed. The source branch history remains the same.
Merge the master branch into the feature branch using the checkout and merge commands.
$ git checkout feature
$ git merge master
(or)
$ git merge master feature
This will create a new “Merge commit” in the feature branch that holds the history of both branches.
Git Rebase
Rebase is another way to integrate changes from one branch to another
Rebase compresses all the changes into a single “patch.”
Then it integrates the patch onto the target branch
Unlike merging, rebasing flattens the history because it transfers the completed work from one branch
to another. In the process, unwanted history is eliminated.
Rebase the feature branch onto the master branch using the following commands.
$ git checkout feature
$ git rebase master
This moves the entire feature branch on top of the master branch. It does this by re-writing the project
history by creating brand new commits for each commit in the original (feature) branch.
Interactive Rebasing
This allows altering the commits as they are moved to the new branch.
This is more powerful than automated rebase, as it offers complete control over the branch’s commit history.
Typically this is used to clean up a messy history before merging a feature branch into master.
$ git checkout feature
$ git rebase -i master
This will open the editor by listing all the commits that are about to be moved.
pick 22d6d7c Commit message#1
pick 44e8a9b Commit message#2
pick 79f1d2h Commit message#3
This defines exactly what the branch will look like after the rebase is performed.
By re-ordering the entities, you can make the history look like whatever you want.
For example, you can use commands like fixup, squash, edit etc, in place of pick.
Graph OPTION
git log --online --graph
git log --online --graph -5 // SHOW only 5 most recent commits
We are committed to turning your idea into a fully functioning, world-class mobile application. As a multi-award-winning app developer, we know what it takes to take your mobile app from conception to launch and beyond. We provide end-to-end application development for all types of projects. We are a top Mobile App Development Company in Sydney have a proven track record of delivering functional apps that meet all your goals and requirements.
ReplyDeleteThis comment has been removed by the author.
ReplyDelete
ReplyDeleteNice post and valuable knowledge . Check our website too which has good information.
We are among the top android mobile app developer chennai and have been producing quality scripts for a long period of time.
Thanks for sharing this Information. Python Training Course in Gurgaon
ReplyDeleteThank you for discussing this very useful article. I heard something new from you. Keep blogging. full stack developer course in jalandhar
ReplyDeleteFull stack Training in Chennai
ReplyDeletenice blog
Full Stack Classes in Chennai
Great post, thanks for sharing , keep posting more Software Testing Classes in Pune
ReplyDeleteThe Ethical Hacking Course offered by Itronix Solutions surpassed my expectations! The course material was extensive, encompassing topics such as cryptography and penetration testing. Especially useful for applying theory to real-world situations were the practical labs. I heartily suggest this course to anyone with a cybersecurity interest.
ReplyDeleteEthical Hacking Course in Jalandhar
A collection of all widely used commands can simplify workflows for developers and marketers alike. In digital design marketing these commands help streamline design tools and platforms, improving efficiency. Mastering key commands allows professionals to create and implement marketing strategies more quickly and effectively, boosting productivity in design projects.
ReplyDelete