第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何識(shí)別 git 提交之間哪些文件已更改

如何識(shí)別 git 提交之間哪些文件已更改

Go
不負(fù)相思意 2023-08-07 10:59:29
我們?nèi)绾问褂?go-git 生成類似于 的兩次提交之間已更改的所有文件的列表git diff --name-only commit1 commit2?對于上下文,我們有一個(gè) git monorepo,其中包含單個(gè)根go.mod文件但多個(gè) Go 應(yīng)用程序。當(dāng)開發(fā)人員將提交推送到分支時(shí),我們希望獲取兩次 git 提交 (?git diff --name-only) 之間更改的所有文件的列表,并將其過濾到應(yīng)用程序目錄列表中,同時(shí)排除某些目錄。我們的最終目標(biāo)是這樣我們就可以構(gòu)建、部署和測試我們的 monorepo 中發(fā)生更改的應(yīng)用程序。我們有一個(gè)類似于 Shippable 的 bash 腳本來執(zhí)行此操作,但我們想使用純 go 和 go-git。
查看完整描述

1 回答

?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

看起來change.Files()只給出了帶有 的文件的名稱to.Name,沒有存儲(chǔ)庫內(nèi)的路徑,但是change.toString()給出了完整路徑。

因此,如果您想使用Tree.Diff,您必須獲取如下路徑:

func getChangeName(change *object.Change) string {

? ? ? ? var empty = object.ChangeEntry{}

? ? ? ? if change.From != empty {

? ? ? ? ? ? return change.From.Name

? ? ? ? }


? ? ? ? return change.To.Name

}

因此,看起來您可以根據(jù)您的需要選擇Tree.Diff或Patch.Stats :

? ?currentTree, err := commit.Tree()

? ? CheckIfError(err)


? ? prevTree, err := prevCommit.Tree()

? ? CheckIfError(err)


? ? patch, err := currentTree.Patch(prevTree)

? ? CheckIfError(err)

? ? fmt.Println("----- Patch Stats ------")


? ? var changedFiles []string

? ? for _, fileStat := range patch.Stats() {

? ? ? ? fmt.Println(fileStat.Name)

? ? ? ? changedFiles = append(changedFiles,fileStat.Name)

? ? }


? ? changes, err := currentTree.Diff(prevTree)

? ? CheckIfError(err)

? ? fmt.Println("----- Changes -----")

? ? for _, change := range changes {

? ? ? ? // Ignore deleted files

? ? ? ? action, err := change.Action()

? ? ? ? CheckIfError(err)

? ? ? ? if action == merkletrie.Delete {

? ? ? ? ? ? //fmt.Println("Skipping delete")

? ? ? ? ? ? continue

? ? ? ? }

? ? ? ? // Get list of involved files

? ? ? ? name := getChangeName(change)

? ? ? ? fmt.Println(name)

? ? }

Patch.Stats將跳過二進(jìn)制文件,而Tree.Diff將讓您忽略刪除。



查看完整回答
反對 回復(fù) 2023-08-07
  • 1 回答
  • 0 關(guān)注
  • 150 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)