Triple dot log
The triple dot is the major range selection which specifies all the commits that are reachable by either of the two references but not by both of them:
git log master...<your-branch>
The triple dot is the major range selection which specifies all the commits that are reachable by either of the two references but not by both of them:
git log master...<your-branch>
Use git stash show -p stash@{0}
to display the content within a specific stash, revealing changes made in that stash for effective version control and collaboration in Git.
With this command, you can check the commit logs in another branch of your project. It's very useful when other coworkers push changes to the main branch.
case main branch: git log -g main
git rebase -i --root
Sometimes we are working on a branch and we want a specific change in a specific commit that is not the last one, we could use fixup
to have our commits neat and to avoid doing a disaster with them.
Imagine that we have a commit story like this:
commit 30e9b16e098315e459f46313c099317ab74decbd
Author: Sam Belmor <sambelmor@gmail.com>
Date: Tue Sep 28 18:57:32 2021 -0500
Add the MVC architecture
commit e13f8600584a8b304c25d08bbaa13d1999f51569
Author: Sam Belmor <sambelmor@gmail.com>
Date: Tue Sep 28 18:51:06 2021 -0500
Add koa/node setup
commit b4b7ee003d554fa7eaa967bcf236c9a02c5a7249
Author: Yasser Batas <yassk8@gmail.com>
Date: Thu Jul 15 07:11:39 2021 -0500
Initial commit
If we do some changes related to the koa/node setup
and we want those changes in the second commit e13f8600584a8b304c25d08bbaa13d1999f51569
, to avoid doing another commit we could do the following:
git add .
you want your changes
For this example we want the changes in the commit Add koa/node setup
with the key e13f8600584a8b304c25d08bbaa13d1999f51569
.
git commit --fixup e13f8600584a8b304c25d08bbaa13d1999f51569
git log
You will see something like this:
commit 3ef0a9c5a3a67b5dff7a7f6374921babf7a40c12 (HEAD -> feature/#2-knex-setup)
Author: Sam Belmor <sambelmor@gmail.com>
Date: Thu Oct 21 11:50:35 2021 -0500
fixup! Add koa/node setup
commit 30e9b16e098315e459f46313c099317ab74decbd
Author: Sam Belmor <sambelmor@gmail.com>
Date: Tue Sep 28 18:57:32 2021 -0500
Add the MVC architecture
commit e13f8600584a8b304c25d08bbaa13d1999f51569
Author: Sam Belmor <sambelmor@gmail.com>
Date: Tue Sep 28 18:51:06 2021 -0500
Add koa/node setup
commit b4b7ee003d554fa7eaa967bcf236c9a02c5a7249
Author: Yasser Batas <yassk8@gmail.com>
Date: Thu Jul 15 07:11:39 2021 -0500
Initial commit
As you can see a new commit was added, with the difference that you'll see the fixup!
word before the commit's description
fixup! Add koa/node setup
At this point, you should check if this is the commit where you want your changes. If this is correct go-ahead to the next point if you made a mistake you could do:
git reset HEAD~
And start again. Be sure to copy the correct commit's key.
Now you're ready to squash your new changes with your old commit.
1. First, you need to copy the previous commit's key from the one that I want to do the squash
. For this example the key that I need is this key b4b7ee003d554fa7eaa967bcf236c9a02c5a7249
from this commit Initial commit
2. So you should put the following:
git rebase -i --autosquash b4b7ee003d554fa7eaa967bcf236c9a02c5a7249
When you do the previous command a text editor will open (nano, vim, etc), and you will see something like this:
pick e13f860 Add koa/node setup
fixup 3ef0a9c fixup! Add koa/node setup
pick 30e9b16 Add the MVC architecture
When you close that window, your changes will be saved and now you'll have the new changes in the corresponding commit.
1.- Create a gist
2.- Clone your gist:
# make sure to replace `<hash>` with your gist's hash
git clone https://gist.github.com/<hash>.git # with https
git clone git@gist.github.com:<hash>.git # or with ssh
3.- Open it & move your image
cd <hash>
mv ~/Desktop/image.jpg ~/Projects/gist/image.jpg
4.- Add your image to your gist's repository:
git add image.jpg
5.- Commit the image:
git commit -m "Add image"
6.- Update gist:
git push origin master
In 2020 GitHub launched its CLI.
Among many other wonders, it allows you to create a PR from the command line.
Using it is exceedingly easy!
First, install it
$ brew install gh
Then, authenticate
$ gh auth login
Finally, create a PR with
$ gh pr create
If your repo has a PR template, it will make use of it.