【问题标题】:git get only list of the last i.e. 2 commitgit 仅获取最后一次提交的列表,即 2 次提交
【发布时间】:2010-10-20 08:56:16
【问题描述】:

我在家中使用 Windows 进行开发并将我的更改发送给客户。客户不想安装任何 SCM,所以我需要发送我从上次迭代中更改的文件。 目前我正在使用带有某种自动化的 Subversion,通过自写批处理,即 Windows 和 GNU/unix 实用程序的混合。该脚本查看给定的修订,列出更改的文件,删除重复并在最后获取列表文件。

@echo off
if (%3) == () goto usage
set TO_REVISION=HEAD
set PUSHNAME=%3-%1

svn log -v -q -r %2 %3 |  sed "s/^[ ^t]*[AM] \/[[:alnum:]_]*\/[[:alnum:]_]*\/\(.*\.[[:alnum:]_]*\)/tar --append --file=%PUSHNAME%.tar \1/" | sed "s/ (.*//g" | sort | uniq | grep -v "config.xml" >> %PUSHNAME%.bat
IF ERRORLEVEL 1 goto error
echo bzip2 %PUSHNAME%.tar>> %PUSHNAME%.bat
echo :: SVN REVISIONS :: %2>> %PUSHNAME%.bat
echo ... %PUSHNAME%.bat generated.
goto done

:usage
echo USAGE: %~nx0 push-file-name from[:to]-revision relative-or-absolute-path
echo See svn log -v -q -r [REV] to view repository log.
goto done

:error
echo ERROR! Check (if exists) output file %PUSHNAME%.bat
goto done

:done

批次并不完美,但对我来说还可以。 现在我决定转向 Git。我已将 subversion 存储库转换为 Git 存储库。但是向我展示 stopper 我在 Git 手册中找不到 svn -v -q -r log 的替换命令:-( 我确定应该是,但经过几天的搜索,我想向更有经验的 Git-Gurus 寻求帮助。

提前感谢您为我的问题花费的时间,

奥列格

【问题讨论】:

    标签: git


    【解决方案1】:

    我猜你正在尝试获取自某些提交以来更改的文件列表:

    git diff-index <commit> --name-only
    

    将列出自 以来更改的所有文件,仅列出它们的名称。

    --name-only 将为您省去 sed'ing 文件名的麻烦。 改用--name-status 会让你看起来更熟悉

    A   debian/control 
    M   debian/rules
    

    输出。

    【讨论】:

      【解决方案2】:
      git show HEAD HEAD^
      

      这将显示当前分支的最后两次提交。更多选项请见git show --help

      【讨论】:

      • HEAD^ 指的是HEAD的父级
      • git --version => git 版本 1.7.2.3。如果我尝试 C:\dev\pim>git show HEAD HEAD^ 我得到(两次 Enter 键)(德语 Mehr 更多)Mehr?梅尔?致命:模棱两可的参数“头”:未知的修订或路径不在工作树中。使用 '--' 将路径与修订分开
      • @oleg:做git branch。它将显示当前是哪个分支(带有星号的分支)。然后将HEAD 替换为&lt;current branch&gt;。无论如何,HEAD 应该可以工作。 cat .git/HEAD 输出什么?
      • C:\dev\reckitt\srcgit\pim2>git branch log4net * master production C:\dev\reckitt\srcgit\pim2>git show master master^ Mehr?梅尔?致命:模棱两可的参数“主”:未知的修订或路径不在工作树中。使用 '--' 将路径与修订版分开 C:\dev\reckitt\srcgit\pim2>cat .git/HEAD ref: refs/heads/master 虽然,我想这在我的工作站上是一个混乱。我正在使用不同的 UnxUtil / Msysgit 安装,可能是它调用了一些错误...
      • @oleg: HEAD~2HEAD^^HEAD 的祖父母相同。
      猜你喜欢
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 2012-08-31
      • 2011-06-03
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多