繁体   English   中英

我怎样才能获得自从我上次使用Git以来在远程服务器上更改的唯一文件列表

[英]How can I get JUST a unique list of files that changed on remote server since my last pull with Git

我们试图弄清楚从我们以前的版本控制系统转移到git是否有意义。 我们正在努力解决的一个问题是,如何在最后一次拉动之后,毫无疑问地弄清楚其他人在所有提交中改变了哪些文件。 特别是,如果在多次提交中更改了相同的文件,我们只想在列表中看到该文件一次。 从我读过的内容来看,似乎我必须在我检查之前实际拉动远程存储库,但即使这样,似乎也没有(简单?)方式来获取已更改的所有文件名列表。 我们对git的理解还不是很深,但是对提取的关注是一些非常大的文件(图像,aiff等)可能已被推送,没有人想要获取所有内容只是为了找出改变了什么? 我已经在stackoverflow中阅读了其他一些Q / As,但是虽然我看到了类似的问题,但我还没有看到任何看似可行的答案。 我们一直在尝试使用几种GUI工具来简化生活(Tower和SmartGit),但他们似乎都没能做到这一点。

要显示当前和以前的主文件之间哪些文件已更改的方法:

git fetch
git diff --stat master origin/master

第一个命令在不更改树的情况下检索最新更新。 第二个打印一个已更改文件的列表(以及插入/删除统计信息) - 如果您输入了git pull ,则会删除所有提交的提交。 之后,您可以运行git merge origin/master来将您的更改与上游的更改合并。 (这相当于一个git pull ,除了pull可以从服务器获得新的更改,如果在此期间推送了任何更改。)

不幸的是,git并没有明确如何在不在本地提取更新的情况下进行区分。

通过ssh直接访问存储库,您可以从本地克隆运行这样的东西。

ssh githost "git --git-dir=/data/repo.git diff --name-only\
             $(git rev-parse origin/master) master"

您可能希望将其放在脚本或别名中。 请注意, $(git rev-parse origin/master)在克隆中本地运行,以检索克隆的远程跟踪分支的ID。

尝试:

git log --stat

这应该打印出当前检出的存储库的详细日志。

不确定git会做什么你想做而不先在本地检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM