拔出后,git会列出自上次拉动以来修改过的文件。
问题是,如何在本地回购上完成更多工作后获取此列表。
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
5420c70
是拉前的状态
如何确定5420c70
sha?
如果我是正确的,ORIG_HEAD是最后一次拉动之前的状态(任何拉动,而不是引入一些变化的拉力)。
我正在寻找像git checkout SOME_HEAD
这样的魔术别名来为我做git checkout 5420c70
。
我正在尝试设置git review
别名,该别名应该区分自上次拉动以来修改过的所有文件,这些文件不是最新的。
在基本情况下,这样的事情有效:
git pull
# lists some chanes file
git diff --name-status ORIG_HEAD..
# diffs them
但我正在寻找类似的东西:
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
答案 0 :(得分:4)
我认为您可以查看reflog,即HEAD@{1}
,例如它diff --name-only ..HEAD@{1}
。
作为另一种选择,您可以git fetch
然后执行git log -p ..@{upstream}
查看即将发生的更改,然后git merge FETCH_HEAD
将更改带入您的工作副本。
答案 1 :(得分:3)
查看reflog后,我发现这就是我要找的东西:
git reflog --oneline | grep -m 1 "pull " | cut -d' ' -f1)
这将只返回上一次成功提取的一个sha,可以在show
,log
,diff
等中使用。
答案 2 :(得分:0)
如果我明白你想要什么,git pull
不是你需要的命令,你应该看看git fetch
完成后你可以做到
git diff HEAD...origin
请注意,您需要3个点而不是通常的2个点
这将给出所有变化的单一差异。如果您满意,可以使用git merge
或git cherry-pick
仅使用{{1}}合并它们
答案 3 :(得分:0)
git log -n 1 --pretty=format:%H