在git

时间:2018-07-29 20:07:31

标签: git gitlab

我们有一个泊坞窗...从git存储库读取一个或多个Dockerfile的文件或其他文件,并会基于该文件自动启动Docker实例。

对于我的应用程序,我基本上拥有要为网络计算的权重,需要将其转化为这些Docker实例。 (因此,基本上,我训练网络,将权重转储到泡菜文件中,然后将其推到git中。)麻烦的是,权重文件每个大约4个演出,现在推了15次后,git存储库是大约60场演出。

保持这些旧的权重对我没有任何价值,充其量,我真的只想要“最后一个好的”和“当前的”。.我一直在研究git rebase -i --root。是“互动的”

我真正想要的是一组git命令,我可以将它们放到我的Makefile中,以压缩除最后一个 two 之外的所有提交。执行该操作的命令行是什么?

谢谢..

2 个答案:

答案 0 :(得分:0)

Git是错误的工具。

如果仍然要使用它,这是一种方法:不要链接提交。使每个提交独立于所有其他提交。使用分支或标记名称(您的选择;为方便起见,在此处说明分支名称)来标识每个提交:

$ git checkout --orphan x1
$ git rm -r .; cp /path/to/data/set/x1/* .; git add .
$ git commit -m "data set x1"

和:

$ git checkout --orphan x2
$ git rm -r .; cp /path/to/data/set/x2/* .; git add .
$ git commit -m "data set x2"

以此类推。

当数据集被证明毫无价值时,请删除引用该数据集的名称(此处为x1x2等)。实际数据最终会消失,通常会在几周内消失。

答案 1 :(得分:0)

听起来像根本不需要版本控制!

但是,如果您想使用Git,则可以。但是,请注意

  1. 您必须创建一个没有父级的新分支。原因是Git希望与父项的任何提交都能使其父项可用(递归)。因此,如果您只删除某个位置的链,则会导致存储库损坏。
  2. Git使用垃圾回收来回收空间。您可以在本地强制使用GC,但是如果将分支推送到repote存储库,则也需要在远程计算机上显式运行GC。您可以为此使用钩子。

简介:

  1. git checkout --orphan temp#创建一个没有提交的新分支“ temp”
  2. git cherry-pick master#选择主人的最后一次提交
  3. 更改文件
  4. git add -A
  5. git commit -m“评论”
  6. git branch -f master temp#将master分支移到temp
  7. git checkout master#更改活动分支
  8. git branch -d temp#删除临时分支
  9. git reflog expire --all --expire = 0#清除对旧提交的reflog引用
  10. git gc --prune = all#强制GC回收空间
相关问题