【问题标题】:Get the name of the file that was changes recently in a git folder获取最近在 git 文件夹中更改的文件的名称
【发布时间】:2019-10-28 20:13:08
【问题描述】:

我正在尝试获取具有最近更改的文件名的名称。例如,一个文件夹包含三个文件 file1.txt、file2.txt 和 file3.txt。我正在尝试拥有一个 powershell 脚本,该脚本根据 git log 或 rev-list 捕获文件的名称并选择它的名称。此外,如果有人添加了另一个名为 file4 的文件,那么它必须由变量选择。

cd folder
  $latest_file = git log -n1  --pretty="format:" --name-only -- *.txt
# or $latest_file = git show --name-only $(git rev-list -1  --all *.sql)
cp $latest_file "some/another/folder/"

git log -n1 的问题是它只能在 file1.txt 更改时捕获文件名,而如果我更改 file2.txt 则它会失败,但是如果我更改 git log -n2 然后它会捕获chagne in file2 但如果 file1 更改或添加 file4 则失败。

git rev-list -a --all 的问题是它提供了更多的输出,而不仅仅是一个文件名,并且不知道如何使用像 log 这样的漂亮格式。

谢谢!

【问题讨论】:

  • 您只是想查看给定目录中新创建的文件吗?
  • 是的,我只是将最新修改的文​​件从该目录移动到另一个目录

标签: git powershell git-log git-rev-list


【解决方案1】:

我想我可以通过如下编辑代码来实现它:

cd folder
   $latest_file = git log -1 --pretty="format:" --name-only *.txt

cp $latest_file "some/another/folder/"

每次我发布一个问题,我都会在几个小时内找到答案:D

【讨论】:

  • 因此,您希望将上次提交中更改的所有文件移动到目标目录,而不仅仅是一个文件。对吗?
  • 在我的情况下,这个特定文件夹上的一个文件只会被一次提交更新,但如果这个过程可能会占用该提交中更改的所有文件,但我没有尝试过那个文件,因为这解决了我的问题问题。
  • 酷!我问是因为我在考虑您的命令将输出多个文件的一般情况。
猜你喜欢
  • 1970-01-01
  • 2014-10-28
  • 2016-01-27
  • 2022-06-15
  • 2016-03-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
相关资源
最近更新 更多