![](/img/trans.png)
[英]How to tell what files on remote repository changed since last git pull?
[英]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.