首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git+Gerrit如何永久删除历史文件(大文件私密文件)

一、前言 前几天同事在拉取一个项目的Git仓库,发现项目拉取速度非常慢,半个钟都无法拉取下来,并且发现一直卡在了99%的进度上。 ?...git reset --soft命令一样是无法将提交记录仓库中抹掉的,虽然通过reset之后,大文件的提交记录在git log中已经查找不到,但实际上,这个记录并不会真正的仓库中删除,只要能找到commit...id,依然可以仓库中恢复该提交历史。...删除命令 如果所有分支都是unchanged说明要么是该分支没有要删除的文件,要么是删除文件的路径不对。 执行以后命令以后,你会发现本地目录中的.git文件并不会马上就变小,而是与原来是一样的!...强制推送命令如下: git push origin master --force #其中master为你要推送的分支 3)由于我们采用的是gerrit进行代码审核,想当然地就认为,应该把这次修改强制推送到

2.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

GITGERRIT,REPO的使用教程

如果是多个git库同时管理,可以使用repo。当然使用gerrit,就必须用repo。...分支,在上面开发,合并 git pull 其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地 eg:git pull origin master origin版本库的代码更新到本地的master...比如这个 branch 改好了后,你是需要上传到 gerrit 进行 review,那么就该使用 repo start。 如果只是一个临时实验性的分支的话,就无所谓了。...forall -p =c git branch repo branches 查看当前有多少分支 Gerrit Review流程 上传代码 reviewer review 当change +2 就可以merge...如果代码有冲突,需要手动处理再重新上传 gerrit 上面下载一个正在 review 的 change 有时候,需要将一个还没有merge 的 change 下载下来,这时,可以到一个 change

4.4K40

Git相关介绍

Git是什么,为什么SVN迁移到GitGit就是一个免费托管开源代码的远程仓库,你可以理解它就是一个大型文件服务器,在上面放置了N多代码文件。...等到我不需要这个分支,我只要把它从我的本地版本库删除即可,无痛无痒。 我可以在Git的任意一个提交点(commitpoint)开启分支!...因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快,但我们需要浏览项目的历史更新摘要,Git 不用跑到外面的服务器上去取数据回来,而直接本地数据库读取后展示给你看。...Gerrit又是什么? https://git.XXX.com/XXXX Git远程仓库,用来备份输入法代码,一般不对这个仓库进行操作。...二、开发实现,提交代码 功能开发会先提交代码到本地仓库,然后提交到gerrit仓库等待代码review,通过Gerrit的权限控制不会把代码提交到远程Git仓库。

1.2K50

Git Review + Gerrit 安装及使用完成 Code-Review

这里我们要实现的是,本地 Git 提交代码 review 到 Gerrit,在 Gerrit 上做 Code Review,如果 commit 通过则直接 merge 到分支,不通过则再修改并 update...6.4 Clone 项目 clone 远程项目到本地,这里 clone 有两种,第一种只 clone 项目,第二种 clone 项目的同时,复制 gerrit 提供的 commit-msg 钩子脚本,它的作用是在每次新的提交生成...在使用 gerrit 时会默认查找名为 gerrit 的 remote, 如果 remote 存在,则 git-review 将提交当前分支到 remote 的 HEAD:refs/for/master...develop 分支。...至此,针对本次的修改才被真正 merge 到分支上了。当然 gerrit 能做的还有很多,如权限控制,分组等等,这里只介绍了最简单的也是最核心的 Code-Review 功能的简单使用。

7.9K90

Android中管理代码基本工作流程

,爱好者社区到大型OEM构建大众市场消费者设备....其他工具 其他工具包含Gerrit,一个基于Web的代码审查系统,用于使用Git项目, Gerrit允许授权用户提交修改,鼓励更集中的使用Git,如果通过代码审查,则会自动合并.另外,Gerrit通过浏览器中并排显示更改并内嵌评论...每当你开始更改时,例如在开始处理错误或新功能,在本地工作环境中创建主分支,主分支不是原始文件的副本,它是一个指向特定提交的指针,这使得创建本地分支并在它们切换是一种轻量级操作.通过使用分支,你可以将工作与其他方面分开...,在Git中创建一个提交: git commit 当提示你提交消息,请为提交给AOSP的更改提供简短描述,如果不添加提交描述,则提交终止: 上传更改到Gerrit 更新到最新版本,然后上传更改:...合并更改到Gerrit后,更新你的本地工作目录,然后使用repo prune安全删除旧的主分支 repo sync repo prune 删除客户端 由于所有信息都储存在客户端中,因此只需文件系统中删除目录即可

1.4K10

干货 | 携程Hybrid代码评审服务

一、综述 携程2013年开始引入了Gerrit和Gitlab两款代码评审服务,开发团队可自行选择其一用来管理代码。...Gerrit提供了pre-commit的评审方式,通俗地说,就是没经过review的变更是不会进入到Git仓库里面。...我们用表格形式做个归纳: 具体优点 是/否优点 Gerrit具备 Gitlab具备 PK结论 未经review的代码不会进到Git仓库 是 是 是(但要fork仓库,管理成本增加) Gerrit 胜出...四、特别适合用CHANGE的场景 场景1:主干分支开发的项目。 因为所有的变更都要求在第一间提交到唯一的开发分支上,保持持续的集成,如此一来,特性分支就没必要存在了。...六、Hybrid代码评审服务的模样 1)尽可能保留Gerrit本地操作的方式: git push origin HEAD:refs/for/目标分支

1.1K20

CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

Gitlab保护Master 分支:在 Gitlab 上创建的项目可以把 Master 分支保护起来,普通用户可以自己创建分支并提交代码到自己的分支上,没有权限直接提交到Master分支,用户最后提交申请把自己的分支...4)Gerrit 和 Jenkins 整合 让Gerrit支持Jenkins 如果安装Gerrit没有或者没有选择添加Verified标签功能[‘lable Verified’],需要自己添加。...clone --bare Gitlab上的仓库到 Gerritgerrit上的项目最好是gitlab上git clone --bare过来,并且项目不要为空) 因为gerrit用户无访问gitlab...注意:当审核未通过打回,我们再修改完成之后,执行: git add 文件名 git commit --amend ##注意会保留上次的 change-id ,不会生成新的评审任务编号,重用原有的任务编号...完整迁移 将远程gerrit上的代码迁移到本地新的gerrit上 要求: 远程gerrit里的代码分支和提交记录都要迁移过来,【即Git仓库迁移而不丢失log】(push的时候使用--mirrot镜像方式即可

4.2K91

Ubantu16.04进行Android 8.0源码编译的流程

bin目录 midir ~/bin 2.创建源码目录 midir ~/source 安装repo 由于在采用网上常见的安装repo方法,出现了Cannot get http://gerrit.googlesource.com.../git-repo/clone.bundle异常,通过网上搜索,原因是repo需要更新自身项目,连接不上项目本身的git仓库,在此,采取了手动拉取repo最新项目的方式 1.git上拉取repo项目...git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo 2.将git-repo里面的repo文件复制到~/bin目录 3.在~/...= 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo' 然后重新执行上述命令即可....补充说明 不带参数的manifest命令用于获取master上最新的代码,但是可以通过-b参数指定获取某个特定的android版本,比如我们想要获取android-4.0.1_r1分支,那么命令如下:

74620

如何保留原提交记录迁移Git项目,你还不知道吗?

番外篇 保留原提交记录迁移Git项目 为了让项目能实现Git+Gerrit+Jenkin的持续集成,我们把项目Git上迁移到了Gerrit上,发现有的同事在老Git提交代码,因为Gerrit做了同步,...在Gerrit上有新提交的时候就会刷新老git,这样就会把他提交的代码冲掉。...保证当前仓库干净 推送代码到新仓库,git push git_new master 字符串 git_new 指代对应的仓库地址,也就是我们刚刚取的别名,master代表想要推送的分支,可以随便选 ?...我们可以对比到,已经成功git_test项目迁移到了git_test_new项目中,但是只推了master分支过来,要推其他分支只要切换分支然后再推就可以了!...迁移老项目同时保存提交历史的秘诀是 git clone老项目 git remote add gerrit添加新项目git链接 cd 项目名 此时我们就位于已有代码 git push gerrit master

4.2K10

Ubuntu下安装部署Gerrit

1.之前 git add-->git commit-->git push如图中橙色的线 2.gerrit就是上图中的那只鸟,普通成员的代码是被先push到gerrit服务器上,然后由代码审核人员,就是左上角的...是会被直接拒绝掉的,这个功能似乎就是右下角那个老头( Jenkins)的任务 5.当进行 commit,必须要生成一个 Change-Id,否则,push到gerrit服务器,会收到一个错误提醒 6...这样就相当于越过了gerrit了。gerrit必须依赖于一个 refs/for/*的分支。...假如我们远程只有一个master主线,那么只有当你的代码被提交到 refs/for/master分支gerrit才会知道,我收到了一个需要审核的代码推送,需要通知审核员来审核代码了。...当审核通过之后,gerrit会自动将这条分支合并到master主线上,然后邮件通知相关成员,master分支有更新,需要的成员再去pull就好了。

3K20

Git合并不同url的项目

摘要:为了让项目能实现Git+Gerrit+Jenkin的持续集成,我们把项目Git上迁移到了Gerrit上,发现有的同事在老Git提交代码,因为Gerrit做了同步,在Gerrit上有新提交的时候就会刷新老...(随便取) [查看] 使用命令git remot -v查看远程仓库的情况 可以看到此处我们有三个远程仓库分别名为gerrit、 gitoa_web、origin [同步代码] 使用命令git fetch...gitoa_web/master合并项目 gitoa_web是指代仓库,master指代分支,当然如果有需要也可以合并别的分支过来 [报错] 发现不同email地址错误不能成功提交 因为这个commit...如下 [已有代码推于已有项目] git clone 老项目 git remote add gerrit 新项目git链接 cd 项目名 此时我们就位于已有代码 git push gerrit master...#不带参数,列出已经存在的远程分支 git remote -v #(-v是–verbose 的简写,取首字母)列出详细信息,在每一个名字后面列出其远程

2.3K230

CI持续集成系统环境---部署gerrit环境完整记录

,ID为1000000,默认只有这个系统管理员才有Create权限(创建group和Project), 其他的都只有“List”查看权限 用htpasswd创建的用户,并没有往gerrit中添加账号,...只有当该用户通过web登陆gerrit服务器,该账号才会被添加进gerrit数据库中。...创建新分支受“Create Reference”控制,不允许删除已存在的分支,这是最安全的模式(因为commit不可以被丢弃)。 Force option 允许已存在的branch被删除。...开启此选项可以项目历史中删除提交记录。 此权限主要用来给那些只想用Gerrit的访问控制,不需要Gerrit的代码审查功能的工程使用。...change所用者,分支所用者,项目所用者和网站管理员都可以编辑此话题名(即使没有此权限)。

2.4K90

git远程库代码版本回滚方法

最近使用git, 造成了远程库代码需要回滚到之前版本的情况,为了解决这个问题查看了很多资料。 问题产生原因: 提交了错误的版本到远程库。..., 但是公司使用了gerrit代码审查软件, 会对代码审查后然后再手动去合入, 导致这个方法失效了。...最终采用了如下方法 git checkout the_branch  切换分支 git pull git branch the_branch_backup   备份一下这个分支当前的情况 git reset...push origin the_branch //用回滚后的本地分支重新建立远程分支 git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支 由于使用了...gerritgerrit中心库是个bare库,将HEAD默认指向了master,因此master分支是不能进行删除操作的,所以在操作过程中创建了一个新的分支,把回滚后的代码提交到新建的分支上, 再合入到

1.4K100

Git快速入门

由于GIT刚刚开始使用不久,经常会在Merge出现没有change-id的情况,在结合gerrit使用时,经常出现不能提交的情形,使得自己很困扰。...--graph 以图形化的方式查看日志,在理解分支信息很有用 git clone XXX 拉代码,可以通过https和ssh等方式 git tag 查看里程碑列表 git tag tagname 轻量级里程碑...-v] 查看当前本地分支track的远程分支 git remote show origin 显示远程所有的分支信息 git remote rename [a] [b] 重命名远程库 git remote...remove [a] 删除远程仓库 补充知识 Android项目包含近200个Git版本库,因而google公司开发了repo(对git的封装)和gerrit两个工具进行版本库管理,其中gerrit...**Gerrit提交方式,Git push origin HEAD:refs/for/your_brance...%r=xxx。** Gerrit审核服务器最初其实是为Android项目开发。

833100

Gerrit常见命令及最佳实践

概述 本文记录了笔者在使用Gerrit(一种免费、开放源代码的代码审查软件)过程中的一些微小的经验,在这里做个简单的分享。...ssh://tusi@ip:port/project-name 创建develop分支 一般我们不会将代码直接提交到master分支,而是会选择在develop分支进行开发 git checkout...-b develop origin/develop 添加到暂存区 修改代码后,将所修改的代码工作区添加到暂存区 // 添加所有文件到暂存区 git add . // 添加某目录或文件到暂存区 git...在Gerrit上abandon这次push 2. 软回滚 git reset --soft origin/master 3. pull代码 git pull 4....先保存代码 git stash 2. 检查确认下 git stash list 3. 切换分支去修复bug 4. 修复完毕,切回feature分支,释出stash代码接着干 git stash pop

2.3K30

Git中的常用命令与项目流程命令

1.常用命令 $ git init 初始化文件夹为一个git项目目录 $ git clone https://git.xxx.com/xxx/xxx.git 签出代码 /* Git global...setup 全局参数设置(初始化新项目)*/ $ git config --global user.name "show name" $ git config --global user.email...master /* 合并某个分支上的一系列commits到master */ $ git checkout -b newbranch 62ecb3 有新提交的分支上基于某特定commit基础上创建一个新分支...签出代码(默认master分支) 2.设置个人提交信息 git config –global user.name ‘your name’ 提交代码显示名 git config –global user.email...‘your email’ 3.切换至开发分支dev git checkout [-b] dev 切换至开发分支dev(有dev分支) 4.分支与本地分支关联,免输 [origin dev] 直接使用命令

88210

使用GitHub+Hexo搭建个人博客

点击 Next 进入选择修改初始化分支的名称页面,默认即可。 默认选择让 Git 决定,也可以选择下一项自定义名称,默认修改为 main,也可自行修改为自定义名称。...第一个选项是“签出 Windows 风格,提交 Unix 风格的行尾”。签出文本文件Git 会将 LF 转换为 CRLF。提交文本文件,CRLF 将转换为 LF。...第二个选项是“按原样签出,提交 Unix 样式的行尾”。签出文本文件Git 不会执行任何转换。 提交文本文件,CRLF 将转换为 LF。...第三种选项是“按原样签出,按原样提交”。当签出或提交文本文件Git 不会执行任何转换。不建议跨平台项目选择此选项(“ core.autocrlf” 设置为 “false”)。...部署博客 继续在 Git 窗口输入以下代码: hexo cl && hexo g && hexo d hexo cl是 **hexo clean **的简写。

1.5K61
领券