git原理的理解
Git原理的理解
git分区:
- 远程仓库
- 本地仓库
- 工作区
- 缓存区
git主要由这几个分区组成,git的各种命令其实也是围绕这几个分区来展开的,接下来将通过这几个分区来理解git的各种操作;
git init
- git init 操作是初始化一个git本地仓库,工作区,和缓存区,此时还没有远程仓库与其同步;
git clone
- git clone直接将远程仓库和本地仓库以及工作区间同步
git add
- 平时对代码的操作,实际是在工作区操作,当对代码修改完毕后,就会使用git add;git add 操作是将工作区的文件加入到缓存区中;
git commit
- 当需要将本地修改完成的代码提交到远程时,需要使用git commit命令;这一命令是将缓存区的代码提交到本地仓库;
git push origin 分支名
- 当要把代码从本地仓库提交到远程仓库时,则使用git push,将本地仓库的代码提交到远程仓库;
git push = git fetch + git merge
- git fetch操作首先将远程仓库同步到本地仓库,git merge操作将本地仓库合并到工作区;因此git pull操作最终的效果就是将远程仓库的最新代码合并到了工作区
有时候在git push的时候,常常会出现push被阻止的情况,这是因为远程仓库被其他人更新了,当前分支落后了其他人的commit,需要先将远程分支pull到本地工作区,再看有没有冲突(多人同时修改了一个文件),若有冲突则解决冲突以后再进行提交;但有时候还会出现git pull失败的情况:
这是因为本地工作区间跟远程仓库的新代码冲突了:
这时需要解决冲突后提交本地修改。
缓存区 除了开始出现外,后续提交代码、更新代码篇章都在打酱油;终于,这次冲突解决事件, 它将会是主角
解决冲突后提交本地修改的思路大概如下:
1.将本地修改的代码放在缓存区;
2.从远程仓库拉取最新代码;
3.拉取成功后再从缓存区将修改的代码取出, 这样最新代码跟本地修改的代码就会混杂在一起;
4.手工解决冲突后;
5.提交解决冲突后的代码;
- 具体的操作步骤如下:
1.git pull 出现报错信息: error: Your local changes to the following files would be overwritten by merge: README.md Please, commit your changes or stash them before you can merge. Aborting 2.git stash 3.git pull 4.git stash pop
5.手工解决冲突后: git add README.md 6.git commit -m 'solve conflict' 7.git push origin
相关推荐
formula 2020-11-12
huhongfei 2020-11-05
乾坤一碼農 2020-10-27
liumengyanysu 2020-10-22
E哥的aws认证攻略 2020-10-15
guying 2020-10-05
好脑筋不如烂笔头 2020-09-17
baolen 2020-08-15
Equation 2020-08-09
Balmunc 2020-08-02
fenggou 2020-07-18
zhangxing 2020-07-05
loganwz 2020-07-05
tianyafengxin 2020-10-08
nebulali 2020-09-11