[英]In Python, run a version of a script by specifying its git commit hash
[英]Specifying Git commit hash
我可以指定Git提交哈希,而不是讓Git生成它嗎?
它甚至可能嗎? 我沒有在Git文檔或在線中找到任何方法。
對於某些背景:我正在以編程方式從私有庫重新創建一個新的Git公共存儲庫。 我需要對每個提交進行大量更改以刪除機密信息。 但我想保留提交ID。
您可以使用git cat-file -p da500aa4f54cbf8f3eb47a1dc2c136715c9197b9
獲取的提交內容(匿名;))(替換為您的某個提交的sha1):
tree 48038c4d189536a0862a2c20ed832dc34bd1c8b2
parent f0bb5942f47193d153a205dc089cbbf38299dd1a
author Firstname Lastname <my@mail.com> 1513256382 +0100
committer Firstname Lastname <my@mail.com> 1515152927 +0100
This is a commit message
如果其中一個數據發生更改,則所有sha1都會更改。
tree
是根據文件和目錄內容計算的sha1。
Parent
是父提交哈希。
請注意,內部也有日期,因此如果您在不同時刻執行完全相同的提交,則sha1也會更改
PS:您可以繼續使用命令git cat-file -p
繼續探索tree
並更好地理解git存儲數據的方式。
我相信這是可能的,雖然它需要一些時間和工作,而且是一個黑客。 確實,哈希是由以下值生成的:
但是,如果您可以犧牲其中一個值的一致性,就可以完成。 這是一個例子: https : //github.com/vog/beautify_git_hash
這是一個腳本,它進行提交,然后正在尋找一個特定的日期來使git hash成為你正在尋找的那個,然后用這個日期進行修改。
如果您對提交進行更改,則ID將會更改。(它們取決於提交內容本身,以及其中的更改)。
所以不行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.