在ob中修改文件名就会让git中的文件历史断掉,但用git修改文件名,OB中链接就会断掉

在ob中修改文件名就会让git中的文件历史断掉,

但用git修改文件名,OB中链接就会断掉
大佬们都是怎么解决这样的问题的呢

不用git,纯粹本地 :joy:

git用来同步还是备份?同步的话可以尝试一下remotely save;备份可以用官方的核心插件文件恢复尝试代替

官方的核心插件文件恢复修改文件名之后,历史记录也会断掉的。

自己回复自己,深入学习了git后,发现这个不是问题,git可以自己判断哪些文件是重新命名过的
问题不大

git可以自己判断哪些文件是重新命名过的

是的, 我理解 git 实际没记录 “文件重命名动作”, 它只记录添加 / 删除,
但是 git 可以根据文件相似度, 自由解释 “什么时候该视作重命名”

举例:

# 仓库里首先只有一个 1.txt
git add 1.txt
git commit -m "add 1.txt"

# 然后将 1.txt 改为 2.txt 并变化其中一些行
# 检查状态
git add -A
git status
# 如果 "变化其中一些行" 比较少, git status 会检测到 rename 1.txt => 2.txt
# 如果 "变化其中一些行" 比较多, git status 会检测到 delete 1.txt 以及 add 2.txt

# 但其实这都是一回事, 可以调整参数, 让它自由显示成为 rename 或 "一增一删"
# 这个值默认 50% 越高越相似
git status -M5%
git status -M95%

以上见 git-diff --find-renames


已经成为历史 commit 的也是相同道理

git show -M5% <历史的commitid>
git show -M95% <历史的commitid>

# 对同一个历史 commit, 也能根据这参数, 自由解释到底是 重命名, 还是增删

如图其实这就是一个 commit, 但是左侧解释为 rename, 右侧解释为一增一删

1 个赞

程序大佬,我都是用Sourcetree…
羡慕