我在其中创建新文件的目录已被移动的git合并分支
我想合并到一个目录已被移动的分支中,并且我已经在我的分支中的这个目录中添加了文件。但是,当我尝试这样做时,分支中的新文件没有移动到新目录 我不确定这是否相关,但该存储库中的另一个复杂问题是,“新”目录过去也存在,而另一个分支同时删除了新目录的旧版本,并将旧目录移到其顶部。新目录的旧版本的出现是由于出于版本控制目的而滥用了存储库中的目录,这实际上应该由git来处理,但当时这样做很方便 那么,在执行“交互式合并”(即解决合并冲突或使用我在其中创建新文件的目录已被移动的git合并分支,git,git-merge,git-status,Git,Git Merge,Git Status,我想合并到一个目录已被移动的分支中,并且我已经在我的分支中的这个目录中添加了文件。但是,当我尝试这样做时,分支中的新文件没有移动到新目录 我不确定这是否相关,但该存储库中的另一个复杂问题是,“新”目录过去也存在,而另一个分支同时删除了新目录的旧版本,并将旧目录移到其顶部。新目录的旧版本的出现是由于出于版本控制目的而滥用了存储库中的目录,这实际上应该由git来处理,但当时这样做很方便 那么,在执行“交互式合并”(即解决合并冲突或使用git merge--no commit)时,如何找到所有新文件并
git merge--no commit
)时,如何找到所有新文件并将其移动到新目录
问题是,在这种“合并状态”下:
git status
不会显示添加的新文件,因为它们不是-它们已提交到当前分支对于大多数被忽略的文件,第2点应该不是必须要避免的,但是有一些类型的文件在以某种方式移动时不能正常工作,因此如果确实要删除它们,可以执行
git clean-i-x-d
对于第1点,您可以通过执行git签出--
来执行删除操作
第3点现在不重要了,因为我们现在在旧目录中有了所有要移动的文件,而且只有这些文件
现在剩下的就是移动它们。这有点棘手,因为新目录不是空的,但您可以在Linux和Mac OS X上使用。不幸的是,该脚本没有使用git注册移动,因此您可能需要将该脚本中的mv
命令更改为git mv-f
(-f
,由于第4点的原因,在这种情况下必须提供)