Git常见场景的解决方案
Posted MarToony|名角
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git常见场景的解决方案相关的知识,希望对你有一定的参考价值。
Git重要的原则:
- 面向修改而不是面向文件 ;参考廖雪峰老师的网站:https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496。这句话具体出现的位置已经淡忘了。
- 如果是一个小项目、仅自己使用且涉及上传github保存,则要保证所使用的任何命令都不能够涉及到工作空间。因而git rm 这个命令禁止使用和git reset中的hard参数要禁止使用;而git reset --mixed ID 中的mixed鼓励在遇到问题时经常使用;
- 如果初学者萌生了一个“删除版本空间中某个文件”的想法,则解决不了什么问题,只能通过回退到某一次commit以实现。
因而可以得出结论:每次commit尽量只是一个小部分,避免成堆的提交;
- 如果已经commit的某些文件,已经做了改动,在每次条用git status或者git commit时,都会列出“changes not staged for commit:”及其列出的红字的信息;
这一点表示,git检测出有些已经提交的文件已经发生了变化,提醒您版本空间和工作空间产生了不同。
而解决方法就是:- 一个个将所列出的文件,重新add,再一次性的commit即可;
- 鼓励使用:在commit时,添加a参数,表示:
加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库
。
- 关于参数a的作用可以参考:https://www.cnblogs.com/qianqiannian/p/6005628.html;
除此之外,还涉及了其他的参数的介绍。在此将a参数的具体介绍摆出: - 其他功能如-m参数,加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区,注意,新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用-a参数,正常的提交还是使用git add先将要改动的文件添加到暂存区,再用git commit 提交到本地版本库。
- 正常的操作是:
- git add file1 file2 file3 … …
- git commit -m “message” or -a "Files commited before and now to be updated in 版本空间 "。
- git push origin master。
- github push时,因为要求上传的单个文件的大小不能超过50M,因此,对于大型的项目希望能够独立于代码文件夹以外。
否则,到时候,大文件已经被提交到版本空间,出现push报错,还需要将本地版本空间回滚到该问题大文件commit之前的前一次commitID。这一定不是我们所希望看到的。
尤其是当提交大文件后,并未及时push,而后接连commit。在这样的情况发生之后,需要回滚以及多次重复commit才能回到最初的状态。 - 基于“面向修改而不是面向文件”的原则,具体实现不影响本地工作空间的具体做法之一:—— git reset有三个选项,–hard、–mixed、–soft。
# 仅仅只是撤销已提交的版本库,不会修改暂存区和工作区 git reset --soft 版本库ID #仅仅只是撤销已提交的版本库和暂存区,不会修改工作区 git reset --mixed 版本库ID #彻底将工作区、暂存区和版本库记录恢复到指定的版本库 git reset --hard 版本库ID
参考文章:https://www.cnblogs.com/cposture/p/git.html
以上是关于Git常见场景的解决方案的主要内容,如果未能解决你的问题,请参考以下文章
git项目初次push提示error: failed to push some refs to https://gitee.com/xxxx/gittest.git’解决方案 --九五小庞(代码片段