我可以移动一个文件夹,使非版本文件受到远程影响吗?

时间:2019-04-02 12:24:13

标签: git

假设我具有以下文件夹结构:

  
      
  • 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结构执行此操作的希望非常低,我希望必须应用一些技巧(例如,使用其他工具)。

  • 我可以将我的所有动作记录在只需要在另一个克隆上执行的脚本中,但这对我来说似乎仍然很微不足道且容易出错。

1 个答案:

答案 0 :(得分:0)

您不能这样做。

Git无法跟踪未跟踪的文件。根据定义。