Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get sha of the last commit before pull

Tags:

git

bash

After pull, git lists the files modified since the last pull.

The question is, how to get this list after some more work was done on local repo.

e.g.

$ git checkout feature/default2
$ git pull
Updating 5420c70..b8eec49
Fast-forward
 application/configs/application.ini                                 |   1 +
 application/modules/product/forms/Search.php                        |   3 ++
 public/themes/default/bootstrap/buttons.less                        |  25 -----------
 public/themes/default/css/cmspanel.css                              | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------
 public/themes/default/css/products.css                              |  57 ++++++++++++++++++++----
 public/themes/default/css/style.css                                 | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------
 public/themes/default/gfx/icons/menu-drop-dark.png                  | Bin 0 -> 160 bytes
 public/themes/default/gfx/icons/more.png                            | Bin 0 -> 120 bytes
 public/themes/default/layouts/scripts/footer.phtml                  |  26 ++++++++++-
 public/themes/default/layouts/scripts/gallery.phtml                 |   2 +
 public/themes/default/layouts/scripts/home.phtml                    |   2 +
 public/themes/default/layouts/scripts/layout.phtml                  |   2 +
 public/themes/default/layouts/scripts/products.phtml                |  22 ++++-----
 public/themes/default/less/cmspanel.less                            |  26 +++++++++++
 public/themes/default/less/nav.less                                 |   4 +-
 public/themes/default/less/products.less                            |  61 +++++++++++++++++++++----
 public/themes/default/less/style.less                               |  59 ++++++++++++++++++++++---
 public/themes/default/less/widgets.less                             |  37 +++++++++++++++-
 public/themes/default/modules/cms/scripts/widgets/random.phtml      |   6 +--
 public/themes/default/modules/default/scripts/widgets/submenu.phtml |   2 +-
 public/themes/default/modules/product/scripts/index/view.phtml      |  44 +++++++++---------
 public/themes/default/modules/product/scripts/widgets/search.phtml  |  16 +++++++
 22 files changed, 584 insertions(+), 315 deletions(-)
 create mode 100644 public/themes/default/gfx/icons/menu-drop-dark.png
 create mode 100644 public/themes/default/gfx/icons/more.png

The 5420c70 is the state before pull.
How to determine that 5420c70 sha?

If I'm correct, the ORIG_HEAD is the state before the last pull (any pull, not the pull which introduced some changes).

Im looking for some magic alias like git checkout SOME_HEAD to do git checkout 5420c70 for me.

I'm trying to setup a git review alias, which should diff all the files modified since the last pull, which was not up-to-date.

In a basic case, something like this works:

git pull
# lists some chanes file
git diff --name-status ORIG_HEAD..
# diffs them

but I'm looking for something like this:

git pull
# lists some chanes file
git pull
# up-to-date, no changes
git diff --name-status ORIG_HEAD..
# diffs the files since the last pull which was not up-to-date
like image 528
takeshin Avatar asked Mar 24 '23 06:03

takeshin


1 Answers

I think you could check reflog, i.e. HEAD@{1}, e.g. it diff --name-only ..HEAD@{1}.

As another option, you could do git fetch then do git log -p ..@{upstream} to see upcoming changes, and then git merge FETCH_HEAD to bring the changes into your working copy.

like image 51
kan Avatar answered Apr 06 '23 02:04

kan