目录
五、Git的远程仓库(https://gitee.com/)的注册和代码的上传
六、另一个User如何把远程仓库的代码克隆(clone)下来到本地仓库
一、版本控制发展历史
cvs->vss->svn->git
二、svn和git的比较
- svn是集中式控制,而git是分布式控制。
- svn不支持离线工作,版本全部放在中央服务器;git支持离线工作,版本放在本地,即用户自己的电脑。
- svn的中央服务器一旦挂了,所有的版本就都会丢失,鸡蛋放在一个篮子里。git是鸡蛋(各个版本)放在用户各自的篮子(本地仓库)里,选择其中的一些鸡蛋(版本)放入(push)中央服务器(远程仓库),中央服务器挂了也不会影响到自己篮子(本地仓库)里鸡蛋(版本)
三、Git的下载安装略
四、Git的仓库(本地仓库)的创建
步骤:
- 新建一个准备存放项目的文件夹,添加一些文件,该文件夹不能为空,否则git add和git commit 无法正常执行
- 点进该新建的文件夹,右键,点击Open Git Bash here
- 在出现的黑框中输入命令 git init 创建仓库,文件夹中出现以下文件
- 新建添加 .gitignore 文本文档,文件内容可参考以下
该文件的作用是,有时有些文件我们是不需要push到远程仓库的,可通过这个文件过滤忽略掉
注:一定要在git add 之前创建.gitignore文件,不然.gitignore文件无法作用于执行了git add后添加到缓存区的文件### IntelliJ IDEA ### out/ !**/src/main/**/out/ !**/src/test/**/out/ ### Eclipse ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache bin/ !**/src/main/**/bin/ !**/src/test/**/bin/ ### NetBeans ### /nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ ### VS Code ### .vscode/ ### Mac OS ### .DS_Store
- 输入命令git add . (添加文件到缓存区,. 是所有文件的意思),Enter
- 输入命令git commit -m "xxx" (提交形成版本,xxx为自定义的描述说明,例如“第一次提交”),Enter
注:
- git add 不能添加空目录,git commit 不能提交空目录;
- 必须先执行git add添加到缓存区,再执行git commit形成版本。
命令 git status:查看状态
- 出现的文件名为红色:表示未执行git add
- 出现的文件名为绿色:表示执行了git add 但未执行git commit
- 以上均为出现:表示git add和git commit 均已执行,即全部已形成版本
命令 git log :查看日志,Enter翻页,ctrl+c退出
命令git log --oneline: 显示的日志更干净简洁
五、Git的远程仓库(https://gitee.com/)的注册和代码的上传
- 注册,注册成功后登录
- 创建仓库
- 本地仓库和远程仓库进行连接
创建成功后,出现以下界面,以下命令在之前打开的命令黑框中执行
执行完上面的命令,此时在gitee上刷新,就可以看到本地仓库的文件已经关联到远程仓库这了
git remove add origin http://gitee.com/xxx/xxx.git 命令是本地仓库与远程仓库进行连接,执行过一次后,以后无需执行。
以上步骤执行完后,以后如果对项目的文件进行了修改,我们只需执行git add.(添加) 和git commit -m "xxx" (形成版本)和git push origin "master"(-u可省)(上传远程仓库) 命令即可
六、另一个User如何把远程仓库的代码克隆(clone)下来到本地仓库
方法一:
- 复制仓库的地址
- 同样新建一个项目的文件夹,双击进入该文件夹,右键,点击Open Git Bash here进入黑框,输入命令 git clone https://gitee.com/xxx/xxx.git(仓库地址),即可把远程仓库的文件克隆下来本地仓库(这一命令会自动创建本地仓库,也包含克隆连接远程仓库,所以执行该命令后User的本地仓库已连接远程仓库),之后再在IDEA中打开项目就好,以后文件如有修改,方法同上
方法二:
打开IDEA,
选择“仓库URL”,把仓库地址复制粘贴在URL中,点击克隆即可
把一个项目从远程仓库克隆下来第一件事是:配环境。包括maven(File->Setting)、jdk(右键项目->Open module Settings->Sources和DependenciesProject(把jdk换成本地的jdk))、git
maven
jdk
以后两个User进行协同开发时,A修改更新文件,执行add、commit、push,B先进行git pull origin master(分支名)(pull:从远程仓库获取最新版本并merge到本地仓库),再进行修改更新。
还有版本冲突、Branch、Tags等内容......
七、版本冲突
定义:当两个或更多的开发者同时对同一个文件的同一个部分进行了不同的修改,并尝试将这些修改合并回主分支或仓库时,就会出现版本冲突。
例:A对conflict.txt文件进行修改,同时,B也对conflict.txt文件的同一个部分进行修改,但A先把conflict.txt文件push到远程仓库,
此时,当B修改完后,想push到远程仓库时,这时将会有报错提示,提示B先需进行pull去更新文件,
B执行完pull后,此时B打开conflict.txt文件,文件里将会在冲突的地方出现冲突的标识(<<<<<<< HEAD B的版本 ======= A的版本 >>>>>>>>),
至于选择留哪个版本或者都留,A和B进行协商。留B(A)的版本,则把A(B)的版本和标识删掉,保存即可。
此时,B再重新进行add、commit、push 命令,A执行pull命令更新,再查看conflict.txt文件就会发现A、B的修改都保留下来了。
于是,冲突就解决了。
八、分支branch
分支的作用:当在开发过程中有新的需求增加,为了不影响当前master分支的任务,将会创建一个dev分支把当前的代码拷贝过去,在该dev分支进行增加新的需求的开发,而master分支将按原计划进行,即dev分支与master分支并行开发。
1、查看分支
git branch
2、创建分支
git branch 1.0 创建1.0分支(1.0为自定义名称)
3、切换分支
git checkout 1.0 切换到1.0分支
4、把分支推送到远程仓库
git push origin 1.0 把1.0分支推送到远程仓库
5、创建分支和切换分支的复合命令
git checkout -b 1.0 创建并切换到1.0分支
6、合并分支
git merge 1.0 把1.0分支合并到当前分支(当前分支可通过git branch 查看)
合并后还要进行add、commit、push,其他User进行pull即可。
注:合并一个人操作即可,多个人合并会出现冲突。
九、Tag 标签
标签作用:当想对一个分支再细化或者觉得这一时刻的当前分支值得留存时,可使用标签(相当于做个记号),这样不会增加太多的分支。
tag与branch的区别是:tag 不能合并。
1、创建标签
git tag 1.0.1 创建1.0.1标签
2、查看标签
git tag
3、推送标签到远程仓库
git push origin 1.0.1