我们知道,git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件
git add 如果添加了错误的文件的话
撤销操作
-
git status 先看一下add 中的文件
-
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 ,HEAD 可以不写,直接git reset
-
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了,HEAD 可以不写,直接git reset XX文件
如果不小心 弄错了 git add后 , 又 git commit 了。
先使用git log 查看节点
commit xxxxxxxxxxxxxxxxxxxxxxxxxx
Author:
Date:
回退操作
- 回退到未提交前
git reset --soft 90f1ce4d73c5dc63f46fa61984a6bb878f47374^3.git commit后,可以使用 git revert(反做)
还原已经提交的修改
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
-
git revert HEAD 撤销前一次 commit
-
git revert HEAD^ 撤销前前一次 commit
-
git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存)
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。
4.使用git push(将代码推送至远程仓库)报错:Please make sure you have the correct access rightsand the repository exists报错原因:密钥配置
解决方案:重新配置密钥(搜索下列链接中的“设置SSH key”部分)
ctrl+f 设置SSH key
5.使用git命令git remote add origin url.git报错:fatal: remote origin already exists.报错方案:上传到git的远程源已经存在
解决方案:删除远程源
Git Bash.exe中键入代码git remote rm origin,然后接着提交:gitr remote add orgin url.git即可
6.使用git push报错[root@linux1 php]# git push -u origin master To git@github.com:kangvcar/Results-Systems--PHP.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@github.com:kangvcar/Results-Systems--PHP.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first merge the remote changes (e.g., hint: 'git pull') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
报错原因:GitHub远程仓库中的README.md文件不在本地仓库中。
解决方案:Git Bash.exe键入代码git pull --rebase origin master 再接着git push即可。
注:在github新建代码仓库的时候不要勾选创建README.md
7.工作中经常遇到git commit后(尚未git push操作),需要回退的情况具体方法如下:1.执行git log找到本次commi的ID信息
比如commit id信息为:90f1ce4d73c5dc63f46fa61984a6bb878f47374
2.执行git reset --soft HEAD^操作
对应HEAD即上述commit id信息
git reset --soft 90f1ce4d73c5dc63f46fa61984a6bb878f47374^
说明:最后的符号^记得不要漏掉
此时通过git status时,可以看到git add 的文件(绿色)
3.git reset modify_file
通过git reset modify_file 操作后,
通过git status可以看到红色的修改文件
4.git checkout modify_file
通过git checkout modify_file还原至修改之前状态
8.Git报错解决:fatal: unable to access ‘https://github.com/…‘: OpenSSL SSL_read: Connection was reset昨天还可以git push代码到远程仓库,今天git push时报了这个错:fatal: unable to access ‘https://github.com/…’: OpenSSL SSL_read: Connection was reset, errno 10054
产生原因:一般是这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错
参考网上解决办法:解除ssl验证后,再次git即可
git config --global http.sslVerify "false"9.git push后卡住不动
有时候提交本地修改到远程分支时,会出现下图这样卡住不动的情况:
手动Ctrl+C终止后重新提交还是这样。
解决:
1.手动将仓库sideband属性设置为false,当然也可以设置全局
#全局: git config –global sendpack.sideband false #仓库: git config –local sendpack.sideband false
2.检查是否还有未提交的修改,若有将修改提交,再push
3.解决问题
由于Github 有单一的文档大小限制,如果超过了100MB就会显示上传失败出现下面的情况。
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. remote: error: Trace: da815a6d6f452ecffe5fa628c59519a8 remote: error: See http://git.io/iEPt8g for more information. remote: error: File crawlTPL/data/reusageMapping.csv is 332.44 MB; this exceeds GitHub's file size limit of 100.00 MB
传项目到Git上,当某个文件大小超过100M时,就会上传失败,因为默认的限制了上传文件大小不能超过100M。如果需要上传超过100M的文件,就需要我们自己去修改配置。
- 首先,打开终端,进入项目所在的文件夹;输入命令:
git config http.postBuffer 524288000
- 执行完以上语句后输入
git config -l
可以看到配置项的最下面多出了一行我们刚刚配置的内容. (52428000=500×1024×1024,即500M)
11.git push时有些不存在了的文件(或者已经手动删除的文件)还会被尝试提交在工程中,我添加了一个优酷视频的静态库,我使用终端提交代码时,出现以下错误:
remote: error: File ManMao/Classes/Others/Library/YouTuEngineMediaPlayer/libYouTuMediaPlayerEngineYouku.a is 137.94 MB; this exceeds Git@OSC's file size limit of 100 MB。
文件超过了限制的大小,不能push成功。暂时就先搁置push了。
但是在上传时由于有广告标识符,所以就先删除了视频这一块。当我删除之后再次上传时,依然出现同样的错误。虽然项目中已经删除了。但是项目的本地仓库仍然存储的有这个东西。那么怎么把它踢出本地仓库呢。找了很久,终于找到一句代码,执行之后即可解决:
$ git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch (上述划斜线的内容)' HEAD
具体实例
$ git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch ManMao/Classes/Others/Library/YouTuEngineMediaPlayer/libYouTuMediaPlayerEngineYouku.a' HEAD总结常用操作
- 查看原来连接的地址
git remote -v
- 解除原先连接的所有地址
git remote rm origin



