学习GIT
主要是两块内容:Git基础和Git分支
一.Git的基本认识:
1.git使用基本流程:
文件流转的三个工作区域:
1.Git的本地数据目录2.工作目录3.暂存区域
2.git的简单工作流程:
1.在工作目录中修改文件
2.对修改的文件作快照,并保存到暂存区域
3.提交更新,将保存在暂存区域的快照转存到git目录中
3.cvcs(集中式版本控制系统)和dvcs(分布式版本控制系统)区别:
二.Git使用(bash git)
首先我们先总结下git status的几种状态:
1.新添加文件到仓库:未跟踪状态
2.添加跟踪文件以后:未提交状态(已暂存)
3.更新文件以后:(未暂存状态)
4.手动删除文件以后:(未暂存状态)
同3
5.对于更新和手动删除,我们必须将其先暂存
更新:git add .
手动删除:git rm XX
远程拿数据的方式:
1.克隆远程仓库
git clone gitURL XX
2.git fetch XX
只是将远程的数据拉倒本地仓库,并不自动合并到当前工作分支,只能手工合并。
XX:仓库名称或者URL
花了点时间基本上学会了git的使用,下面就通过将既有的用户管理的项目远程发布到git服务器上的例子来介绍下git的整体流程使用。
大致分成两大步骤:1.本地操作 2.远程操作(大部分操作都是在本地操作进行的)
1.首先建立git的工作目录(例如git)
并同时创建整个项目的根目录:
2.然后将workspace下所需的项目拷贝至maven-user
3.本地操作
step1:拷贝完成以后通过git-bash进入上面的跟目录
step2:初始化操作
git init
step3:添加跟踪
git add .
step4:增加忽略某些文件的配置
touch .gitignore
增加:
*.pid
logs/step5:直接提交至本地数据目录
.idea
.settings/
target/
*.project
*.classpath
*.iml
命令:git commit -m '注释信息'
由于是新添加跟踪文件,因此直接add跟踪后便进入暂存状态
step6:将数据添加至远程仓库
远程没有数据时,就不需要pull数据,直接push便可:
第一种:
1.先git remote add 别名 gitUrl
2.然后git push 别名 master
如果gitUrl是自定义的也可以,这样相当于创建远程仓库并将数据推送至远程仓库
成功提交
三.Myeclipse下安装Egit
方式一、
直接通过Myeclipse的配置中心,添加软件的updateUrl来进行安装插件。不过这种方式验证了以后,巨慢。
安装成功:
方式二、
直接下载插件包,用link方式进行安装.
四.Git分支
1.分支基础操作
创建新的分支:git branch XX
切换其他分支:git checkout XX
创建和切换一步完成:git checkout -b XX
合并分支:git merge XX
冲突合并:
原因:两个待合并分支同时修改了分支里面同一个文件的同一部分。Git无法将其赶紧的合并到一起。
解决:根据提示信息,手动处理。无非是二者选其一或者你亲自整合到一起。
2.分支管理
分支查看:git branch
查看与当前分支合并的分支:git branch --merge (相反便是git branch --no-merge)
删除分支:git branch -d XX(如果未合并,则提示不能删除)
强制删除分支:git branch -D XX
3.分支式工作流程
长期分支
特性分支
4.远程分支:(无法移动的本地分支)
ps:origin远程仓库名称,XXX代表本地分支名称
-推送本地分支到远程(同时创建远程分支):git push origin XXX
5.衍合
略,类似于合并
Git错误记录:
问题1 .通过git将本地数据推送至github上时:
disconnected no supported authentication methods available server sent publickey。
原因:乌龟git和git本身产生冲突,删除系统变量GIT_SSH便可,重启系统。