踩了一些坑,亲试可行。
先是这个报错error: The following untracked working tree files would be removed by checkout:错误对应:
后是报错:Git :fatal: refusing to merge unrelated histories解决
$git pull origin master --allow-unrelated-histories
是由于两个仓库具有不同版本,不同的提交历史。
每次git init时都会有.git文件夹产生,里面包含着版本信息,删掉重新初始化,会更改版本。
大文件存储可以使用git LFS,要先下载再配置,再在要提交的目录bash here打开终端。
先在https://git-lfs.github.com/下载extensions,解压(安装)后的文件,用终端进入,并用./文件名执行其中 一个,得到git lfs initialized就是安装成功。
$ git lfs install
> Git LFs initialized
则表示安装成功,配置LFS,则是将其和文件后缀关联,使用git lfs track *.zip,*.zip是文件的后缀,之后经过git add,git commit,git push后就可提交文件了。
但如果要clone大文件,则需要先安装LFS,否则clone下来的只是索引文件。
- 使用LFS的对象,不能直接是个文件夹,不带后缀名,否则提交就像普通文件夹,没法避开大文件夹的100M限制。
- 如果是直接改了postBuffer,git终端在写的过程中容易停滞不动。
- 一般超过了100M的多数包含了数据集,贴个网站进去即可。
- 假设加了一个后缀名.try,然后再提交,即使没显示upload进度条,但是也是可以把超过100M的文件夹上传上去。
- 实际上是个上传大文件,并非一定要有后缀名,*.zip也就是个正则,可以直接git lfs track 文件夹名。
- 要上传的文件夹不能包含大于100M的文件,否则会提示有大文件夹。
如果是想要清掉暂存区,也就是add的文件,使用git rm 文件名 -r --cached,如果是想清除仓库,则需要回退commit id,使用Git log可以查看,再:
git reset --soft|--mixed|--hard <commit_id>
git push develop develop --force (本地分支和远程分支都是 develop)
soft或者mixed等选一个:
--mixed 会保留源码,只是将git commit和index 信息回退到了某个版本.
--soft 保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
--hard 源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)
后面一句如果不加上--force,在前一句使用mixed在提交之后会显示冲突,需要git pull。