有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别人clone你的代码或下载zip包的时候也必须更新或下载这些无用的文件, 因此, 我们需要一个方法, 永久的删除这些文件(包括该文件的历史记录). 首先, 可以参考 github 的帮助: https://help.github.com/articles/remove-sensitive-data 步骤一: 从你的资料库中清除文件 以Wind…
目录 Git永久删除文件和历史记录 使用filter-branch 添加到.gitignore文件里并push修改后的repo 清理和回收空间 Git永久删除文件和历史记录 造成你想从git存储库中永久删除文件和历史记录的可能有: 你不小心将一个不该加入版本管理的文件加了进去,敏感数据或大文件或别的没用的文件: 你不小心将一个涉及到破解某著名软件的文章加了进Github仓库,这时你就会收到github官方的邮件来提醒你需要完全删除该文件,不然就会遭到git仓库被封禁. 你希望将敏感数据或无用文件…
永久删除文件后找回 1. 已经添加到本地库的文件 使用 reset 命令回退到未删除的历史记录即可 2.添加到缓存区,没有提交到本地库的文件找回 git reset --hard HEAD 命令即可找回 如删除了一个文件并add添加到了缓存区,而没有 commit 提交到本地库,则可以使用上面命令恢复 3. 总结: 前提:删除前,文件存在时的状态提交到了本地库(文件已经提交过) 操作:git reset --hard [指针] 删除操作已提交到本地库:指针位置指向历史记录 删除操作尚未提交到本地…
有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别人clone你的代码或下载zip包的时候也必须更新或下载这些无用的文件, 因此, 我们需要一个方法, 永久的删除这些文件(包括该文件的历史记录). 首先, 可以参考 github 的帮助: https://help.github.com/articles/remove-sensitive-data 步骤一: 从你的资料库中清除文件 以Wind…
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:…
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test.txt" [master b84166e] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了: $ rm test.txt 这个时候…
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test.txt" [master b84166e] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了: $ rm test.txt 这个时候…
拉取远程仓到本地 git clone ×× cd ××× 查看分支 git branch -a 切换到想要操作的分支 git checkout 想要操作的分支 在本地仓库删除文件 git rm 我的文件 在本地仓库删除文件夹 git rm -r 我的文件夹/ 此处-r表示递归所有子目录,如果你要删除的,是空的文件夹,此处可以不用带上-r. 提交代码 git commit -m”我的修改” 推送到远程仓库(比如GitHub) git push origin 想要操作的分支 问题:git fetch…
删除一个文件(工作区删除,并且在本地版本库中也删除) 第一种方式: rm test.txt 先删除工作区的test.txt git add test.txt (我的理解是,将删除test.txt这个动作add上去,告诉本地版本库) git commit -m "删除了test.txt" 第二种方式: rm test.txt 先删除工作区的test.txt git rm text.txt 提交一个git动作,删除本地版本库中的text.txt但是只是记录了动作,还没有commit提交到本…
1 现在本地文件管理器删除了readme.txt(这个readme.txt已经在创库存在的) rm -rf readme.txt 2 此时git status查看 $ git status # On branch master # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout --…
git 仓库中删除历史大文件 在git中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢.而且用删除 提交历史记录的方式不是很实际. 以下分几个步骤介绍如何减小.git文件夹 1.显示10个最大的文件id列表 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -10 $ git verify-pack -v .git/objects/pack/pack-*.idx | sort…
1.git rm 删除文件 git restore --file (git老版本:git checkout) git rm --file(本地和管理都已删除) git rm --cached file(本地保留文件,管理中以删除) git rm *.pyc(匹配文件) 1)修改文件后使用git status 查询状态 提示:1.进行git add .添加至缓存区间 2.放弃此次修改 执行第二句,放弃修改 重新加载后,发现 go go go的那一句不见了 2)已添加到暂存区间,执行git rest…
工作区和暂存区概念: 工作区(Working Directory)就是你在电脑里能看到的目录. 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD. 前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的: 第一步是用git add把文件添加进去,实际上就是把文件…
删除文件 回忆一下文件的常见操作,新增文件,修改文件,删除文件等,新增和修改文件都单独讨论过,现在我们来研究一下如何删除文件. 你可能会说删除文件还不简单啊,直接 rm -rf <file> 即可,但是这仅仅是本地文件被删除了,对于 git 来说,文件并没有被删除. 还记得我们开篇介绍git 时就说过,一切操作皆版本 ,对于新增是一个版本,修改也是一个版本,就连删除都是一个版本. 下面让我们看一下 git 中如何删除文件吧! 背景 # 查看当前文件列表 $ ls file1.txt file2…
场景:项目中有一个文件test_exam_copy 文件之前提交上去的,现在不想要,本地也不要 方案一(手动图示删除): 直接登录到gitLab上面,进入该文件详情,直接删除,然后本机push下,则库上以及本地都被删除了 方案二(git命令): git rm '文件名'      #删除文件命令 git commit -m '填写注释'  #提交命令 git push…
http://blog.csdn.net/pipisorry/article/details/47867097 查看文件的修改历史 git log --pretty=oneline 文件名 # 显示修改历史[Git高级教程:git log与git reflog] git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e # 查看更改 历史版本对比 查看日志git log 查看某一历史版本的提交内容git show 4ebd4bbc3ed321d01484…
如何永久删除git仓库中敏感文件的提交记录 参考: 1. https://help.github.com/articles/remove-sensitive-data/…
问题描述 不慎在创建.gitignore  文件之前的时候将文件push到了 git仓库,即使之后在.gitignore文件中写入新的过滤规则,这些规则也不会起作用的,git依然会对所有git仓库中的文件进行管理, 首先我是用 git rm  -r 此命令去删除然后提交到git仓库,后面发现这样会将本地文件删除,并不是我想要的效果, 最终找到命令 git rm -r --cached 成功将git仓库中的 文件删除 并保留文件在本地 下面整理出删除git仓库中文件夹或文件的相关git命令 1.删…
我向远程仓库提交了如下文件src/ pom.xml target/ WebContent/,发现没必要提交target目录. 于是做了如下操作: git rm -r --cached target git commit -m "delete target/" git push origin master 打开github看一下,target目录是不是没有提交了! 如果想把target目录以后都不用提交,可以作如下 vi .gitignore #写入: target/ #可以在.giti…
git add -a 或 git add * 它能stages所有文件,包括之前删除的痕迹 git add . 只能stages新文件和被修改的文件,不会stages已被删除的文件 步骤如下: 1) 本地手动删除文件或文件夹 2) 打开终端,cd到本地工程仓库路径 3) 输入命令行 "git add ." 添加新文件和被修改文件 4) "git status"  查看一下被删除的文件是不是成功,成功删除会显示绿色 5) 确定之后,"git commit&q…
stackoverflow原问题地址:http://stackoverflow.com/questions/13716658/how-to-delete-all-commit-history-in-github 原文:http://blog.csdn.net/yc1022/article/details/56487680 经过本人测试,如果对于大型仓库,还不如删掉远程仓库重新创建来得快,以下步骤仅仅是减少了重新创建仓库的步骤 git仓库删除所有提交历史记录,成为一个干净的新仓库 1.根据当前分支…
一些时候由于开发初期经验不足和贪图方便, 会把一些不应该提交到 Git 的文件上传到 Github, 带来一系列安全问题, 更有可能是把一些大文件上传到 GitHub 上, 导致项目非常臃肿, 每次 pull.push 都要花费很多时间. 超 100000 个 GitHub 代码库泄露了 API 或加密密钥 关于如何更好的管理大文件, 可以阅读 更好的在 Git 项目中保存大文件(Git LFS 的使用) - 质子 - 博客园. 这时候就可以寻求一些特殊的工具的帮助, BFG Repo-Clea…
1.前言 使用  git做项目控制版本工具,当然,使用SVN也可以,但是,git让人感觉更先进一些,与GitHub结合,用起来很方便,服务端由官网控制. 而SVN分客户端和服务端,都是个人控制,因此,会觉得相对安全一点,毕竟SVN存东西是在自己的服务里,而git是存在云端!!! 2.创建 仓库 (1)首先需要有一个自己Github账户, 官网地址 :  https://github.com/ 怎么注册就不说了, 登录后,点击右上角的加号 点击 new repository ,即新存储库的意思 (…
当commit提交一个文件a到本地仓库中,然后又git rm a 删除这个文件(),再执行git push后,同样会把a文件push到远程仓库.并且这个时候执行git pull并不会从远程仓库拉取a文件到本地仓库中(因为本地仓库中存在这个文件a,git rm a只是从本地工作区中删除了这个文件) 这个时候如果你想要删除刚才提交到远程仓库中的a文件,你可以先commit提交一下刚才执行的git rm a操作,这个时候再git push,远程仓库的a文件就被删除了. 如果你在git rm a命令后不…
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:…
/********************************************************************* * git 恢复工作区删除的所有文件 * 说明: * 今天一个不小心将git工作区的内容给删除了,仓库还在,记录一下怎么 * 恢复的方法. * * 2016-10-26 深圳 南山平山村 曾剑锋 ********************************************************************/ 一.参考文档: . g…
在日常开发中,我们可能或手动删除(delete键删除的)一些文件,然而我们本来应该是用git rm fileName命令删除的,但是现在我们手动删除了,那么要如何在git里面讲那些手动删除的文件删除呢? 我们这里有两种方法可以在git中删除那些手动删除(delete键删除的)的文件: 第一种就是用 git rm files 删除你手动删除的文件或文件夹. 当然,如果你删除的文件有很多,而且分布在不同的文件夹中,使用第一种 git rm files 的方法,显然不方便,效率也很低下,那么有没有更快…
撤销修改 1.如果当你修改了代码,然后又发现修改错误以后,想撤销前面的操作的时候该怎么办呢? 既然错误发现得很及时,就可以很容易地纠正它.你可以删掉最后一行,手动把文件恢复到上一个版本的状态.如果用 git status 查看一下: 你可以发现,Git会告诉你, git checkout -- file 可以丢弃工作区的修改: 2.如果当你修改了代码,已经add到暂存区而没有进行commit操作的时候,想撤销前面的操作的时候该怎么办呢? Git同样告诉我们,用命令 git reset HEAD…
1.删除分支 1.1查看所有分支: git branch -a 得到结果: 1.2删除HEAD分支 git push origin --delete HEAD 2.删除文件夹 2.1 查看本地分支下的文件 ls 得到结果: 2.2删除raindow文件夹及其下所有的文件 git rm raindow -r -f 删除的效果: 2.3同步删除操作到远程分支: git commit -m "delete raindow" 同步的效果: 2.3提交分支: git push origin ma…
工作区和暂存区 984次阅读 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的…