簡體   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