问题标签 [git-mv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
37 浏览

git - 如果我忘记运行`git mv`,如何修复重命名的文件?

我使用图形 git 应用程序将我的分支重置为较早的提交,保留更改。

然而,之前移动的文件 ( git mv Anchor.jsx Anchor.tsx) 变成了添加和删除:

如何使用 git 命令行解决此问题?

0 投票
1 回答
26 浏览

git - 将文件从包含一个文件的目录移动到另一个(重构)

我有一个目录,其中包含一个文件,该文件在特定包Foo.java下的包下定义了一个类,即 我想重构并将该类移动到不同的包中,例如,我从我正在使用的 IDE 内部进行 了重构,这导致了显示:com.a.b.csrc/com/a/b/c/Foo.java
com.x.y.xsrc/com/x/y/z/Foo.java
git status

现在的问题是它src/com/a/b/c仍然在那里并且是空的。
我知道git空目录有问题,所以现在我不确定应该如何删除它?我应该git rm -r src/com/a/b/c一次完成所有事情吗?或者,还有更好的方法?

0 投票
1 回答
32 浏览

git - 你如何告诉 git 删除和添加确实是一个动作?

大多数时候,git 可以知道我何时移动了一个文件,但有时它不能。有没有办法告诉 git,“相信我,这是一个动作?”

其中一个关键组成部分是我正在使用一个工具来重命名文件。必须恢复重命名并以 . 身份重试会很烦人git mv,特别是如果在移动之前/之后对文件进行了其他更改。

0 投票
1 回答
172 浏览

git - Git mv 无法按预期工作(文件位置错误)

作为我的任务的一部分,我需要将组件从三个地方合并到一个地方。换句话说,将文件夹(包括许多子文件夹和文件)移动到一个现有文件夹。

我正在使用git mv,但问题是,一旦我尝试将git merge非合并分支合并(使用)到合并分支,我会遇到很多冲突,其中大部分与 Git 刚刚移动到错误位置的文件有关.

知道为什么 Git 不知道如何正确处理它吗?(Git 版本是最新的。)

示例

合并前:

合并后:

合并前(目标树):

合并后:

更新

我正在添加一个答案似乎不支持的案例:

合并后的源码树:

合并前(目标树):

合并后(使用ORT答案中的命令):

如您所见,它检测到新文件及其新位置(test4.py),但没有检测到新文件夹(使用 test5.py)。我希望它也会将它移动到 python2 下的新位置,因为文件(test4.py)和文件夹(`new_test)都具有相同的父级(python1)。我将与 GIT 支持团队核对并更新

0 投票
1 回答
85 浏览

git - git mv 文件夹并随后将新文件从功能分支合并到修改后的路径,是否会删除其历史记录?

我有以下情况:

合并前的主要分支:

合并后的主分支:

合并前的功能分支(test4.py历史记录中有 10 次提交):

从功能分支合并后的主分支(使用git merge -s ort和解决不存在的冲突test4.py):

问题是所有的历史都test4.py被删除了......知道它为什么会发生以及它是否可以避免?