3
我正在嘗試爲GIT裸回購庫創建一個基本的GIT Web UI,該回收允許編輯(僅)現有文件。Git:使用Git管道命令編輯裸露回購庫中的文件
例如,考慮到這兩種情況:
- /dir-a/dir-b/dir-c/a-file.txt
- /a-file.txt
我如何使用Git低級別管道命令來保存編輯?此外,我正在使用Grit
,不確定它是否提供了一個快捷方式來執行此操作。
我正在嘗試爲GIT裸回購庫創建一個基本的GIT Web UI,該回收允許編輯(僅)現有文件。Git:使用Git管道命令編輯裸露回購庫中的文件
例如,考慮到這兩種情況:
我如何使用Git低級別管道命令來保存編輯?此外,我正在使用Grit
,不確定它是否提供了一個快捷方式來執行此操作。
我不知道Grit,但有了Git本身,你可以像這樣做,使用索引。
我們假設要存儲在dir-a/dir-b/dir-c/a-file.txt中的新內容在/tmp/new-content.txt中可用。
git read-tree HEAD
newhash=$(git hash-object -w --path=dir-a/dir-b/dir-c/a-file.txt /tmp/new-content.txt)
git update-index --cacheinfo 0644 $newhash dir-a/dir-b/dir-c/a-file.txt
newtree=$(git write-tree)
newcommit=$(git commit-tree $newtree -p HEAD -m 'file editedin a bare repository')
git update-ref HEAD $newcommit
因此,如果深層嵌套目錄中的文件發生變化,我必須重新生成所有父目錄的哈希,對不對? –
@AkshayRawat - no。我更新了這個例子。我想你也可以用'git mktree'等手工處理樹,但是這裏我們使用索引。 –
非常感謝!我想要在沒有索引的情況下進行裸回購。 –