gpt4 book ai didi

git - 当目录已经移动到不同目录时如何在git中 merge 文件

转载 作者:太空狗 更新时间:2023-10-29 13:55:03 25 4
gpt4 key购买 nike

我曾在从 master 分支获取的分支上工作过一段时间。现在我需要 merge 我的更改。更改位于特定文件夹中,例如admin 这是我项目中的一个子目录。

当我从 master 分支获取最新版本时,这个目录被移动到另一个位置,例如主人/管理员。所以,现在当我尝试 merge 时,它会将所有与管理相关的文件显示为新文件。

我想避免任何手动 merge 工作,并希望有一种方法可以让 git 知道这不是新文件夹,而是已移动的现有文件夹。

最佳答案

So, now when I try to merge, it shows me all of the admin related files as new file.

Restore the old branch并使用 git mv 而不是简单的 mv 命令移动文件。


为什么我必须使用 git mv 而不仅仅是 mv?

Git 不跟踪文件名。它将内容存储在 .pack 文件中,将文件名(元数据)存储在 .idx 文件中,它不是内容本身的一部分。

要更好地了解它,请阅读 git 如何存储文件名
https://git-scm.com/book/en/v2/Git-Internals-Git-Objects#Tree-Objects

Git 无法跟踪移动的文件,除非您使用 git mv 移动它们。如果您只是简单地移动或重命名它们,git 会将它们作为新文件进行跟踪并删除旧文件。


如何跟踪移动文件的变化?

# you have to use the --follow flag
git log --follow ./path/to/file

关于git - 当目录已经移动到不同目录时如何在git中 merge 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com