有很多类似于这个问题的问题,但我找不到能解决我的问题的问题
问题是这样的: 前段时间我在gerrithub项目中检查了一个大文件,后来在我删除它的地方进行了检查,不知怎的,这个大文件停止了自动复制到Github,后来我注意到了这个 - 我想要删除大文件并使用我的最新更改为github进行合并,但是当git尝试合并时,大文件不断弹出
-o-o-o-o-o-x-o-o-o-o master
|
o-o-o-o mybranch (origin where issue large file was added)
|
o = (where file was removed)
我结束了从Github结帐,然后从我的gerrithub复制然后签到 - 这不是我想要的,因为这破坏了历史,如果不止一个人正在努力,这是一个很大的NO - NO分支。
首先我尝试做以下事情:
git pull <url to gerrit> <branch>
git rebase
然而,即使执行了以下操作,这也会停在问题文件中:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch <issuefilename>' <commit id>..HEAD
有没有办法让Github忽略大文件并继续检查?或者是否有一种安全的方法来删除此提交???
答案 0 :(得分:1)
据我所知,除了重写历史之外没有解决方案(你说这不是你想要的)。这就是为什么您只找到与git filter-branch
相关的解决方案的原因。
根据您与谁合作,可以通过团队之间的一些沟通来重写历史记录。一般来说,这是一种不好的做法,但如果需要,可以找到一些方法来解决这一步骤,向同行发送此类变更以及如何处理。
答案 1 :(得分:0)
我终于得到了它的工作,并且历史完好无损 - 我在GitHub和GerritHub存储库上都进行了跟踪
var el = _client.Cypher.Match("(map:Map)-[r:ALSO_AS*0..4{ManCode : {manCode}}]-(alsoas:Map)")
.WithParams(new
{
manCode = relation.ManCode
})
.Where((MappingNode map) => map.Id == node.Id)
.Return((map, alsoas) => new
{
node = map.As<MappingNode>(),
related = alsoas.CollectAsDistinct<MappingNode>()
});
(仅限GitHub) git stash
git remote add upstream <gerrit project url>
git pull upstream <branch>
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch <filename>' -f HEAD
git stash apply
它花了很长时间与GerritHub并且它在一段时间内没有服务,但它回来了,历史记录完好无损,我可以看到大文件被替换为日志中的&#34; --- / dev / null&#34;
在此之后,我尝试使用GerritHub进行正常git push origin <your branch>
,然后将其复制到GitHub