[英]Why does git diff-tree show always show rename as add and delete
在兩個測試提交中,其中第一個只有操作git mv file moved_file
,第二個只有mv moved_file moved_again_file && git add -A moved_file moved_again_file
,它們在提交前都顯示為git status
重命名,但是在git commit --verbose
它們顯示為新文件和刪除文件。
我期待每次提交后git diff-tree HEAD
顯示一個R
(重命名)狀態,但我一直得到兩個: A
和D
我正在嘗試編寫一個基於文件狀態執行操作的腳本,但如果它們總是顯示為添加/刪除,我無法正確規划R
(或C
)狀態。
Git是版本1.8.3.1,如果這有所不同。
git diff-tree
命令是一個管道命令,而不是瓷器命令,因此它具有可預測的行為。
其中之一是除非明確打開,否則重命名檢測已關閉 。 將此與例如git diff
對比,這是一個瓷器命令,因此根據您對diff.renames
的個人配置設置重命名檢測。
要啟用重命名檢測,請添加-M
或--find-renames
(及其可選閾值)。 使用-C
或--find-copies
(及其可選閾值)來查找副本; 如果需要,添加--find-copies-harder
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.