提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
GIT
提示:这里可以添加本文要记录的大概内容:
自己对git的理解
提示:以下是本篇文章正文内容,下面案例可供参考
一、GIT是什么?
GIT就是一个共享代码库,代码放在网上统一管理,大家谁修改了代码都可以在网上改,这样可以实现多人并发开发一个大项目。
但是在代码统一管理的时候有一个问题就出现了,就是两个人同时修改了一个文件,怎么协调这两者之间的修改,而不会出现一个人修改覆盖另一个人的修改。
GIT的add pull commit push就可以解决
二、GIT 结构
GIT 有四大存放代码地方,工作区,暂存区,本地库,远程库
1.工作区
比如你在IDEA或者eclipse里或者linux命令行里打开了一个项目文件,mian.cc或者student.java 这些就是工作区,说白了就是你的自己笔记本或者电脑里的代码文件
2.暂存区
就是暂时存放修改过代码的文件的地方。比如说,你今天工作,把main.java, student.java,teacher.java, school.java这四个文件改了,你就可以把今天都修改的这四个文件放在这个暂存区,等会把他们提交到本地代码库。这个暂存区就在你电脑代码目录下的隐藏文件夹 .git 里, 然后你可以用git add xxx文件名字或者 git add . 表示所有文件,提交到暂存区
3.本地库
这个比较好理解,就是把网上那个完整的代码库 复制一份到你的电脑里。 然后呢,你不是有个暂存区么,你每天工作完,就可以把暂存区里的文件,提交到本地库上,这就是git commit。
这样就完成了你对代码的修改。但是呢,本地库不联网对吧,它只记录你自己对代码的修改,别人对代码修改你看不到,你的同事也看不到你的修改呀,你还要把你本地的修改同步到网上。
4.远程库
就是网上那个共享的代码库, git push 就是把远程库的内容换成你的本地库内容。
那这里就有个问题了,比如A修改了student.java, B修改了teacher.java, A把本地库的内容git push到远程库了,接着B也git push到远程库,那是不是A 的提交就被覆盖了,因为在B的本地库里,student.java文件并没有被修改。那A今天一天岂不是白干,气死了。
所以说,在你git push,要把最新的远程库的内容更新到你本地库的内容,也就是git pull,那这个时候git会提示B,远程库上student.java 和你电脑里的student.java不一样(因为A改了),你要怎么办,git merge 就是替换,或者忽略 所以 git pull + git merge = git fetch
5.总结
远程代码库就上网上 的共享代码放置区
本地代码库就是把远程库 复制一份 到自己电脑上,他只记录了你对代码的修改,别人对代码的修改你看不到。
所以每次你要把自己的本地代码更新到远程的时候,要先更新一下自己的本地代码,把别人的代码修改更新进来,这样才不会起冲突。
暂存区 存在感一般,就是缓存,放置所有修改的代码文件,然后一总提交到本地代码库上
工作区
你在IDE, 例如eclipse IDEA,看到的代码
使用步骤
1.下载GIT 并 注册
跳过啦就
2.ssh key
更新本地代码库(比如远程的那个代码库有更新了) git pull git fetch (=git pull + git merge)(比如说A修改了main.java然后他把修改后的main.java(new)提交到了远程代码库,这个时候你本地代码库的main.java是不是和远程代码库的main.java(new)不一样了,那这个时候你更新本地库的时候,git就会提醒你呀,说你这俩文件不一样,你要不要更新,如果你选择更新,那个你本地的main.java就是被新的main.java覆盖,这就是git merge) 未完待续
|