V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kaedea
V2EX  ›  GitHub

Github 上怎么删除一个文件的版本控制信息,只保留最新文件?

  •  
  •   kaedea ·
    kaedea · 2015-07-04 00:16:59 +08:00 · 6820 次点击
    这是一个创建于 3213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在·Github·上有一个Repo已经快超过1G的体积了,但是其实项目本身并不大,主要是由于有些大图片多次修改,所以GIT保留的这些图片的历史记录文件非常大,但是我这些图片又不需要历史记录信息,请问:
    1、怎么删除这些文件的版本控制信息,只保留最新文件?
    2、在一开始创建新文件的时候,能不能设置改文件不参与版本控制,但是又能push到远程?

    第 1 条附言  ·  2015-07-05 13:17:29 +08:00
    这个问题换另一种描述就是:使用SVN或者GIT,当repo太大的时候,如何瘦身(可以删除不必要的历史记录)
    11 条回复    2015-07-06 18:21:18 +08:00
    Septembers
        1
    Septembers  
       2015-07-04 00:34:38 +08:00
    美术资源单独一个仓库比较好吧?适当的版本管理还是需要的
    Septembers
        2
    Septembers  
       2015-07-04 00:34:59 +08:00
    再通过git submodule引入
    ledzep2
        3
    ledzep2  
       2015-07-04 00:40:44 +08:00
    我的感觉是 你根本不是需要github, 你需要dropbox.
    Daniel65536
        4
    Daniel65536  
       2015-07-04 00:44:01 +08:00
    rm -rf .git
    git init
    git add -A
    git commit
    git push -f
    Sinute
        5
    Sinute  
       2015-07-04 00:49:33 +08:00 via Android   ❤️ 1
    可以参考git pro移除对象那章

    当你将 Subversion 或 Perforce 仓库转换导入至 Git 时这会成为一个很严重的问题。在此类系统中,(签出时) 不会下载整个仓库历史,所以这种情形不大会有不良后果。如果你从其他系统导入了一个仓库,或是发觉一个仓库的尺寸远超出预计,可以用下面的方法找到并移除大 (尺寸) 对象。
    警告:此方法会破坏提交历史。为了移除对一个大文件的引用,从最早包含该引用的 tree 对象开始之后的所有 commit 对象都会被重写。如果在刚导入一个仓库并在其他人在此基础上开始工作之前这么做,那没有什么问题 ── 否则你不得不通知所有协作者 (贡献者) 去衍合你新修改的 commit 。

    虽然不算一种常规的使用方法不过应该符合你目前的需求
    catface
        6
    catface  
       2015-07-04 00:50:15 +08:00
    @Daniel65536 哈哈,干脆利落
    xiaogui
        7
    xiaogui  
       2015-07-04 01:34:13 +08:00
    感觉你正好该需要这个了
    https://git-lfs.github.com/
    582033
        8
    582033  
       2015-07-04 01:35:02 +08:00 via Android
    删掉.git目录
    582033
        9
    582033  
       2015-07-04 01:35:53 +08:00 via Android
    2: 加入.gitignore
    kaedea
        10
    kaedea  
    OP
       2015-07-05 13:13:53 +08:00
    @xiaogui bingo
    kaedea
        11
    kaedea  
    OP
       2015-07-06 18:21:18 +08:00
    这个问题换另一种描述就是:使用SVN或者GIT,当repo太大的时候,如何瘦身(可以删除不必要的历史记录)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1635 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:45 · PVG 00:45 · LAX 09:45 · JFK 12:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.