假设我具有以下文件夹结构:
My_Repository
Library
Bananas
my_script.ook
my_output.dat
(未版本化)
...,我想将其更改为:
My_Repository
Library
Bananas
my_script.ook
my_output.dat
换句话说,我想将子文件夹(Bananas
)上移一个级别,将其所有内容都包括在其中,包括未版本控制的my_output.dat
。
后一个文件是未版本化的,因此绝对不应(假定它很大),但是它存在于存储库的某些克隆中。
现在,以下代码在我的本地克隆中正常工作:
git mv My_Repository/Library/Bananas My_Repository
但是,如果其他克隆完成了此更改,则结果如下:
My_Repository
Library
Bananas
my_output.dat
Bananas
my_script.ook
在这里还有什么方法可以得到理想的结果吗?我正在寻找一种解决方案,该解决方案可以很好地适应已移动的文件夹和文件的数量,但是我也可以接受精心制作的 no 作为答案。
我可以手动在另一个克隆中移动文件my_output.dat
,但是这种方法不能很好地转换为更多文件。
我的理解是Git并不真正在乎文件夹结构,而是通过相似性来跟踪文件的更改。因此,我希望使用本机Git结构执行此操作的希望非常低,我希望必须应用一些技巧(例如,使用其他工具)。
我可以将我的所有动作记录在只需要在另一个克隆上执行的脚本中,但这对我来说似乎仍然很微不足道且容易出错。
答案 0 :(得分:0)
您不能这样做。
Git无法跟踪未跟踪的文件。根据定义。