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