本章Git教学将基于码云,因为在国内,由于网速的原因,GitHub作为代码开源站点更为合适,进行项目管理的话速度太慢了。 学会码云的使用,GitHub也可触类旁通。
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
国内git服务器地址:码云 国外git服务器地址:GitHub
git的安装可以参照百度经验,或者自行查阅,在此不做赘述。
安装完之后记得将git下的bin目录加到path路径,以可在终端通过git version查看版本为安装成功标准。
使用IDEA自带git进行学习
安装git之后在IDEA中配置git
在码云上创建一个Java仓库
复制git路径
创建项目,并创建git仓库
然后可以看到项目文件变红
接着将项目add到本地仓库
commit到服务器
此时会失败,因为项目目录与git服务器目录不一致, 然后打开终端,输入 git push -f 你的git项目地址 强制推送即可。
之后,使用IDEA中VSS下的git操作即可,操作步骤参照原理图。 (比如,更改代码之后,进行add操作,然后commit操作,然后push进行同步)
通过创建分支,实现版本管理。
创建分支,用于记录版本。比如此时的分支为1.0版本
此处checkout可以理解为切换
在主干上添加新功能
commit后并push到git服务器。
假设此时,1.0版本出现了bug,因此切换回1.0版本进行bug修复
切换回1.0分支
可以看到,1.0中并没有新功能
进行BUG修复
然后把1.0的代码也commit并push到服务器。
可以看到,主干上有新功能,1.0上修复了bug,但bug是在1.0分支上修复的,主干上依旧存在bug,因此,此时需要将1.0合并到主干上,以此修复主干BUG。
记得先切换回主干,因为是主干合并其他分支
合并后,将主干master推送到服务器。
此时可以继续创建2.0分支,然后master作为未来的3.0继续开发。
先鼠标单击选中你想查看的对象(此处选择项目根路径) 然后操作如下:
可以看到项目变化
然后会弹出相应的版本号,我这里随便选了一个,查看结果如下:
绿色的部分就是改变的地方
如果误删了某个文件,然后又提交到了服务器,可以通过版本回退。
此处以1.0BUG修复文件为例,删除该文件。
commit并push
码云上查看变化
选择回退到上一个版本。
四种选项后面都有提示,我们选择Keep模式。
回退成功
然后打开终端,输入命令 git push -f 即可(误删记录不会出现)
注:网上提供的checkout并不能直接进行“撤销”操作,实质上是将git的HEAD指针移动到了指定的checkout分支,此时误删操作依旧存在。
然后等待即可下载成功。
1.创建git仓库,并将仓库下载到本地git clone https://gitee.com/xxx/xxxx.git 2.把项目内容放在下载的git项目目录下 3.打开git命令行, 4.git add . 5.git commit -m ‘初始化项目’ 6.git push origin master
之后对项目进行改变之后,直接commit并push即可(通常IDEA自动add,如果没有,则先add)
在Git中创建分支,是必须有一个父节点的,也就是说必须在已有的分支上来创建新的分支,如果工程已经进行了一段时间,这个时候是无法创建空分支的。但是有时候就是需要创建一个空白的分支。
2.1 使用 git checkout的–orphan参数:
git checkout --orphan emptybranch
该命令会生成一个叫emptybranch的分支,该分支会包含父分支的所有文件。但新的分支不会指向任何以前的提交,就是它没有历史,如果你提交当前内容,那么这次提交就是这个分支的首次提交。 2.2 删除所有文件:
想要空分支,所以需要把当前内容全部删除,用git命令
git rm -rf . //注意:最后的‘.’不能少。
2.3 提交分支:
如果没有任何文件提交的话,分支是看不到的,所以我们需要创建一个新文件,然后提交则新创建的branch就会显示出来。
echo '# new branch' >> README.md
git add README.md
git commit -m 'new branch'
2.4 最后push到远程仓库,则新的空分支就创建成功了。
git push origin emptybranch
git fetch --all 拉取所有 git reset --hard origin 重设指针到最新 git pull
慎用,本地代码如果没有备份,会将本地的代码全部删除,而且找不回来。