如何存储 "git pull" 的输出,不删除文件、数字和重复项,以在文本文件中列出新文件?
How to store an output of "git pull", without deleted files, numbers and duplications, for listing new files in a text file?
我主要使用 Fish 而不是 Bash 和 Zsh。我想输出一整fast-forward
的git pull
从三月份到今天,但是只输出修改后的文件和新增的文件,没有增删改减,没有重复,列出一个新的图标文本文件,所以我会把错过的新图标复制到另一个分支。
例如:
git pull > new_icons.txt
我想用这些命令,但是我需要排除删除文件、重复项和增删改数的选项
git pull > new_icons.txt 2 > &1
git pull |& tee new_icons.txt
git pull &> new_icons.txt
如果你不知道什么是“增删改查数”,例如:
您可以看到 |
、数字、+
和 -
。我想在文本文件中输出时排除它们。
重复的是什么?
例如:
February 7
Fast-forward
icon.svg | 3+++
February 24
Fast-forward
icon.svg | 2--
March 7
Fast-forward
icon.svg | 1++
我只想输出一个唯一icon.svg
.
我不确定我是否可以对 git pull
使用命令 fmt -1 | sort -z | uniq -cd | xargs echo
,例如:
git pull |& fmt -1 | sort -z | uniq -cd | xargs echo |& tee new_icons.txt
git pull
的输出只是 git diff --stat
提交之间 before/after 拉动。
例如:运行 git diff --stat d649d3e f0c56e2
,您应该会看到与屏幕截图中相同的输出。
找到你想要的根提交(你的仓库在三月份的状态),然后使用 git diff
.
对于您的用例,git diff
还有其他有用的选项:
--name-status
将显示受影响文件的名称,前缀为 A,M or D
(resp:添加、修改或删除)
--name-only
将显示文件名,没有更多信息
--diff-filter=[(A|M|D)]
将允许您仅显示与过滤器匹配的文件的信息
查看完整文档:git diff
(我简化了 diff-filter
和 name-status
的描述,完整的文档可以找到 here and here)
您要查找的列表是:
git diff --no-renames --diff-filter=AM --name-only [basecommit] [branch]
因为你想在其他分支上“应用补丁”,你可能还需要已删除文件的列表(删除它们......):
git diff --no-renames --diff-filter=D --name-only [basecommit] [branch]
以下列表有助于理解两次提交之间发生的事情:
git diff --name-status [basecommit] [branch]
我主要使用 Fish 而不是 Bash 和 Zsh。我想输出一整fast-forward
的git pull
从三月份到今天,但是只输出修改后的文件和新增的文件,没有增删改减,没有重复,列出一个新的图标文本文件,所以我会把错过的新图标复制到另一个分支。
例如:
git pull > new_icons.txt
我想用这些命令,但是我需要排除删除文件、重复项和增删改数的选项
git pull > new_icons.txt 2 > &1
git pull |& tee new_icons.txt
git pull &> new_icons.txt
如果你不知道什么是“增删改查数”,例如:
您可以看到 |
、数字、+
和 -
。我想在文本文件中输出时排除它们。
重复的是什么?
例如:
February 7 Fast-forward icon.svg | 3+++ February 24 Fast-forward icon.svg | 2-- March 7 Fast-forward icon.svg | 1++
我只想输出一个唯一icon.svg
.
我不确定我是否可以对 git pull
使用命令 fmt -1 | sort -z | uniq -cd | xargs echo
,例如:
git pull |& fmt -1 | sort -z | uniq -cd | xargs echo |& tee new_icons.txt
git pull
的输出只是 git diff --stat
提交之间 before/after 拉动。
例如:运行 git diff --stat d649d3e f0c56e2
,您应该会看到与屏幕截图中相同的输出。
找到你想要的根提交(你的仓库在三月份的状态),然后使用 git diff
.
对于您的用例,git diff
还有其他有用的选项:
--name-status
将显示受影响文件的名称,前缀为A,M or D
(resp:添加、修改或删除)--name-only
将显示文件名,没有更多信息--diff-filter=[(A|M|D)]
将允许您仅显示与过滤器匹配的文件的信息
查看完整文档:git diff
(我简化了 diff-filter
和 name-status
的描述,完整的文档可以找到 here and here)
您要查找的列表是:
git diff --no-renames --diff-filter=AM --name-only [basecommit] [branch]
因为你想在其他分支上“应用补丁”,你可能还需要已删除文件的列表(删除它们......):
git diff --no-renames --diff-filter=D --name-only [basecommit] [branch]
以下列表有助于理解两次提交之间发生的事情:
git diff --name-status [basecommit] [branch]