Lil*_*ard 82
您可以使用refspecs相当简单地完成此操作.
git pull origin
git diff @{1}..
Run Code Online (Sandbox Code Playgroud)
这将为你提供当前分支的差异,因为它在拉动之前和之后存在.请注意,如果pull实际上没有更新当前分支,则diff会给出错误的结果.另一种选择是明确记录当前版本:
current=`git rev-parse HEAD`
git pull origin
git diff $current..
Run Code Online (Sandbox Code Playgroud)
我个人使用一个别名,它只是向我显示一个日志,以相反的顺序(即最旧到最新),sans合并,自我上次拉动后的所有提交.每次我的拉动更新分支时我都会运行它:
git config --global alias.lcrev 'log --reverse --no-merges --stat @{1}..
Run Code Online (Sandbox Code Playgroud)
Gre*_*reg 12
格雷格的方式应该有效(不是我,其他格雷格:P).关于您的注释,origin是一个配置变量,当您将中央存储库克隆到本地计算机时由Git设置.从本质上讲,Git存储库会记住它的来源.但是,如果需要使用git-config,可以手动设置这些变量.
git config remote.origin.url <url>
Run Code Online (Sandbox Code Playgroud)
其中url是中央存储库的远程路径.
这是一个应该工作的示例批处理文件(我还没有测试过).
@ECHO off
:: Retrieve the changes, but don't merge them.
git fetch
:: Look at the new changes
git diff ...origin
:: Ask if you want to merge the new changes into HEAD
set /p PULL=Do you wish to pull the changes? (Y/N)
IF /I %PULL%==Y git pull
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 10
这与我询问如何在git中对分支进行更改的问题非常类似.请注意,当使用两个点与三个点时,git diff与git log的行为不一致.但是,对于您的应用程序,您可以使用:
git fetch
git diff ...origin
Run Code Online (Sandbox Code Playgroud)
之后,a git pull会将更改合并到您的HEAD中.
| 归档时间: |
|
| 查看次数: |
45761 次 |
| 最近记录: |