今天写了一天代码,然后 git hub commit 了 多达 7 次, 但是都没有把修改正式推送上去。结果最后要推送的时候发现中间有一个提交文件超过了100M. 是 vs 的代码性能分析报告 .vsp 文件, 我只能说真的是硕大无比,一个报告居然有800M。那当然我希望把这个文件忽略掉,所以修改 .gitignore 文件。但是已经来不及了,因为之前的 commit 里面已经有了这个文件, 即使我在新的commit中忽略掉它,之前的commit也无法推送上去。那么只能不要脸的把所有commit都遗弃掉了。重新来过。
1. 首先备份下今天的所有修改。
2. 丢掉所有commit:
a. 从master上面copy 下HEAD版本的SHA
b. git reset --hard SHA
3. 把今天的修改copy回来, 注意只拷贝代码改动,不要把相关的git文件也拷贝回来,不然git又会说 your branch is ahead of master 7 commits blablabla...
4. 然后重新提交代码。 git add -A, git commit -m "你的日志", git push
最后提个醒,如果有改动最好还是直接push上去好,不然到最后累的是自己。今天代码没写几行,尽搞git了。 悲伤。
如果 重装 git 后发现本地的 branche 没法 match 服务器上的 项目,可以 通过 克隆来恢复。
Add --> Browse 选择本地项目目录下的 .git 文件夹。点确定即可。
新建一个 repository, 如果发现有错误: fatal: The remote end hung up unexpectedly
那么有可能是git/https buffer设置的问题,可以通过以下命令解决: git config http.postBuffer 524288000。通常是因为要上传的文件太大,然后是用https协议上传的,文件大小有限制,导致上传失败。所以改下https butter就可以。如果是用ssh协议上传应该就没有问题。下载的话,https协议也不会有问题,通常源码文件不会太大。新建repo由于所有文件要打包到一起上传,很容易超过1M,所以这个问题就容易发生。还有就是如果上传太多的图片的时候也会有这个问题。