簡體   English   中英

如何在省略新文件的同時更改git倉庫中的文件

[英]How to get changes to files in a git repo while omitting new files

我有一個git repo,其中包含一個文件夾,其中包含自動生成的源代碼文件。 加班,對該代碼進行了一些輕微的手動修改。 我現在處於需要重新生成文件的位置,但我不想錯過任何更改。

我想做的是隨着時間的推移獲得對該文件夾所做的所有更改的差異,但是要排除每個文件的原始“添加”。 這樣我就可以將diff應用於新的文件集。

還有一個更重要的細節:並非所有文件都是同時添加的。 添加內容與編輯混合在一起。 所以它並不像從特定提交開始生成diff那么簡單。

有任何想法嗎?

更多背景:

  • 自動生成的文件是從WSDL文件生成的SOAP代理類
  • 我們正在處理多個服務,因此在需要時添加了類。
  • 我們收到了一個更新的服務器虛擬機,其中包含一些包含小修復的WSDL
  • 用於生成代理類的工具有一些不完整的實現,因此對這些文件所做的更改是解決方法

種子:

  • 有沒有辦法知道第一次提交文件的SHA? 我覺得有一個git loggrepsed味道?
  • 也許得到一個特定文件的提交計數,其中1 ==沒有更改只有插入,我可以grep那些?

修改回答:

您將需要一些腳本來遍歷該目錄並使用每個文件獲取初始提交
git log --format=%H fileName | tail -1

而不是獲得差異:
git diff ^output_of_above SHA_last_commit fileName

我假設您仍然擁有WSDL的舊副本,是一個很好的源代碼控制用戶和所有。 考慮到這一點,我會做以下事情:

  • 在添加任何相關文件之前,創建並簽出新分支。
  • 使用舊的WSDL和提交生成類。
  • 使用新的WSDL和提交生成類。
  • Checkout master並合並新的分支。

這將合並自動生成的文件與手動調整的差異。

保持該分支,以便每次WSDL更改時,您可以檢查該分支並重復最后兩個步驟。 基本上,該分支應始終只包含自動生成的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM