Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在git repo中插入重新发现的备份文件_Git - Fatal编程技术网

如何在git repo中插入重新发现的备份文件

如何在git repo中插入重新发现的备份文件,git,Git,我的问题是,我有一组相当大的“暴力版本”文件,即与日期指示器一起存储,这些文件也分布在各种数据载体上 在克服了对版本控制的厌恶之后,我想将所有这些文件放在git repo中,以便按时间顺序重建快照 问题: 假设我有一个git repo,其中包含与日期a对应的快照,因此您希望将提交C拼接到B之后的历史中间: 用一个分支的名字来保持你的位置,并检查它 重置为B 添加新发现的文件并将其作为C提交 在新分支的顶部重新设置旧分支的基础 这里有一个例子。我准备了一份回购协议样本;这是日志: commit

我的问题是,我有一组相当大的“暴力版本”文件,即与日期指示器一起存储,这些文件也分布在各种数据载体上

在克服了对版本控制的厌恶之后,我想将所有这些文件放在git repo中,以便按时间顺序重建快照

问题:


  • 假设我有一个git repo,其中包含与日期a对应的快照,因此您希望将提交C拼接到B之后的历史中间:

  • 用一个分支的名字来保持你的位置,并检查它

  • 重置为B

  • 添加新发现的文件并将其作为C提交

  • 在新分支的顶部重新设置旧分支的基础


  • 这里有一个例子。我准备了一份回购协议样本;这是日志:

    commit 740dc8c1dd312d93c63f8edd4dfb91503f7f66df (HEAD -> master)
    
        F
    
     F (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit d0b2924ad33e4d7f2898eb8707bbdf016f7adf8a
    
        E
    
     E (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit a932a794ceb6df01483490410d7a3e538f556876
    
        B
    
     B (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit 85d3a01ee94427729b745078c8c06d8b89a6af52
    
        A
    
     A (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    因此,从下到上阅读,我添加了文件A并称之为提交A,添加了文件B并称之为提交B,然后对E和F也是如此

    现在假设我们发现了文件C的存在。我将把一个添加C的提交拼接到历史链中:

    git branch holdMyPlace
    git checkout holdMyPlace
    git reset --hard a932a794 # go back to B
    touch C
    git add .
    git commit -m"C"
    git rebase holdMyPlace master
    
    下面是日志:

    commit 882d6e170101a1a9cb0462c5eb1b6103470ab07c (HEAD -> master)
    
        F
    
     F (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit 57e9a01b94f48741b70ecfea32492659cef4aeb3
    
        E
    
     E (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit c5b41b74b2dc0a36bef17c01ed581eda585ce103 (holdMyPlace)
    
        C
    
     C (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit a932a794ceb6df01483490410d7a3e538f556876
    
        B
    
     B (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit 85d3a01ee94427729b745078c8c06d8b89a6af52
    
        A
    
     A (new) | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
    
    这正是您想要的历史:看起来C是在B之后添加的,E和F是在C之后添加的