如何存储“git pull”的输出,而不删除文件、数字和重复,以便在文本文件中列出新文件?

如何存储“git pull”的输出,而不删除文件、数字和重复,以便在文本文件中列出新文件?,git,sorting,fish,uniq,Git,Sorting,Fish,Uniq,我主要使用鱼而不是Bash和Zsh。我想从3月份到今天输出整个快进的git pull,但是只有修改过的和新的文件,没有添加、删除和修改的次数,没有重复,才能列出文本文件的新图标,所以我会将丢失的新图标复制到另一个分支 例如: git pull > new_icons.txt February 7 Fast-forward icon.svg | 3+++ February 24 Fast-forward icon.svg | 2-- March 7 Fast-forward

我主要使用鱼而不是Bash和Zsh。我想从3月份到今天输出整个快进的git pull,但是只有修改过的和新的文件,没有添加、删除和修改的次数,没有重复,才能列出文本文件的新图标,所以我会将丢失的新图标复制到另一个分支

例如:

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++ 我想使用这些命令,但我需要的选项,以排除删除的文件,重复和数量的增加,删除和修改

git pull > new_icons.txt 2 > &1
git pull |& tee new_icons.txt
git pull &> 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++ 你可以看到|,数字,+和-。我想在文本文件中输出时排除它们

复制品是什么

例如:

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++ git pull的输出只是在pull之前/之后的提交之间的git diff-stat

e、 g:运行git diff-stat d649d3e f0c56e2,您将看到与屏幕截图中相同的输出

找出你想要的根提交,并使用git diff在3月份确定回购协议的状态

对于您的用例,git diff还有其他有用的选项:

-名称状态将显示受影响文件的名称,前缀为A、M或D resp:Added、Modified或Deleted -仅名称将显示文件名,而不显示其他信息 -diff filter=[A | M | D]将允许您仅显示与筛选器匹配的文件的信息 请参阅完整的文档: 我简化了diff filter和name status的描述,可以找到完整的文档并

您要查找的列表是:

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]
git pull的输出只是在pull之前/之后的提交之间的git diff-stat

e、 g:运行git diff-stat d649d3e f0c56e2,您将看到与屏幕截图中相同的输出

找出你想要的根提交,并使用git diff在3月份确定回购协议的状态

对于您的用例,git diff还有其他有用的选项:

-名称状态将显示受影响文件的名称,前缀为A、M或D resp:Added、Modified或Deleted -仅名称将显示文件名,而不显示其他信息 -diff filter=[A | M | D]将允许您仅显示与筛选器匹配的文件的信息 请参阅完整的文档: 我简化了diff filter和name status的描述,可以找到完整的文档并

您要查找的列表是:

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]

它是否只输出唯一的文件以消除重复?如果没有,我会添加sort-z | uniq-d吗?是的,一个文件一次只能出现一次,这只是最后一个问题。git diff是否以区分大小写的形式按字母顺序排序?我认为在实践中会这样,但我不知道这是否是git diff的一个硬保证。只需对结果进行排序,您就可以确定了。它是否只输出唯一的文件来消除重复?如果没有,我会添加sort-z | uniq-d吗?是的,一个文件一次只能出现一次,这只是最后一个问题。git diff是否以区分大小写的形式按字母顺序排序?我认为在实践中会这样,但我不知道这是否是git diff的一个硬保证。只需对结果排序,您就可以确定了。