当我在使用git mv的分支上使用git reset --mixed时,重命名被delete和recreate替换。有没有办法避免这种情况?
git mv
git reset --mixed
ep6jt1vc1#
尝试使用soft代替mixed。
git reset --soft <commit> git commit -m "Preserve renames"
它将分支指针移动到特定的提交,而不修改暂存区或工作目录。这意味着它会将您所做的更改(包括重命名)保留在临时区域中。
hjzp0vay2#
在git中,“rename”和“deleted + added”没有区别。如果您更仔细地查看重置后发生的情况,您应该会看到git status提到删除了一个 * 跟踪的文件 *,并出现了一个 * 未跟踪的文件 *。如果您知道一个单独的重命名并运行:
git status
git add <old_name> <new_name>
git status show现在指示已暂存 rename。
2条答案
按热度按时间ep6jt1vc1#
尝试使用soft代替mixed。
它将分支指针移动到特定的提交,而不修改暂存区或工作目录。这意味着它会将您所做的更改(包括重命名)保留在临时区域中。
hjzp0vay2#
在git中,“rename”和“deleted + added”没有区别。
如果您更仔细地查看重置后发生的情况,您应该会看到
git status
提到删除了一个 * 跟踪的文件 *,并出现了一个 * 未跟踪的文件 *。如果您知道一个单独的重命名并运行:
git status
show现在指示已暂存 rename。