0
我需要包含一些以前不受版本控制的代碼到已經包含一些提交的git存儲庫中。找到合適的父代提交未加入代碼添加到現有的git存儲庫
我想自動化的是找到一個合適的「父」提交,其中的新代碼將是一個孩子承諾。
經過一番測試,我認爲git diff-tree
將最好的工作(因爲只有一個文件夾包含相關的代碼爲「父母」測試)。
我的做法是這樣的:
- 循環通過相關子樹的所有現有的提交和提交的節點SHA1和SHA1
- 新的文件複製到存儲庫中,將它們添加到索引
- 注SHA1的相關子樹
- 比較現有的相關子樹與新候選者,並使用類似的東西的git diff-tree計算「相似度」
- 選擇最多類似的現有子樹,並使其成爲新提交的父代,即檢出新的父代(或
checkout --orphan
,如果找不到合適的父代),則清空工作目錄並填寫新文件並提交。
缺少的是一種計算相似度的方法!也許有人可以給我一個提示標誌的組合將有所幫助...
代碼看起來幾乎像PASCAL如果這很重要。
我目前正在使用類似於你的建議:'git diff-tree -r -M80%-C80%--numstat'並提取添加/刪除的行數。雖然它在某種程度上起作用,但我認爲可能有更復雜的選擇。 – Onur