刚开始尝试使用git的时候,简直是被弄得生不如死啊,写了半天的代码一下子被删了,那时候的心情简直想SHI,后来没办法,抽了点时间学习了一下git的原理,其实就是你的文件现在到底在什么状态,这么一个问题,由于只是了解,所以不知道具体的操作,具体操作还是需要GitKraken这个GUI工具来实现。
git 部分
使用git管理版本的文件在本地会有下面三个过程:
- 已修改(modified):就是你修改了在git管理下的文件
- 已暂存(staged):就是将你修改的文件放在缓存区中,等待处理
- 已提交(committed):就是在你的本地确定了你这次保存在缓冲区中的文件与上一次committed的文件一起,为一个版本,这里先不要考虑远程的情况,到此为止,本地能完成的事情已经完成了。
注意上面的英文,因为在一些版本管理软件的GUI界面中就会显示这些的,所以注意一下。
GitKraken
上面讲的这些状态都在GitKraken的最右边部分有显示:
从上到下分别是modified、staged、commit。
远程
本地基本不怎么会被作死,但是远程,特别是使用命令行来操作远程的时候,加上分支,分分钟想SHI。。。。。。
回到原题,这里也先介绍一些基础知识,注意其中各部分的默认名称,在不熟悉git命令的情况下会经常看见这些默认名称。
- 远程仓库:默认是origin,就是托管你代码的远程服务器
- 分支:就是同一仓库下不同的房间,比如同一个软件,可能有稳定版,最新体验版,那么稳定版的维护就需要一个Stable分支,最新体验版就有一个Develop分支,分支可以合并,这个下面再说。 默认的分支名,也就是在创建仓库时的那个主分支叫:master。
- 提交(push):提交,就是将你本地的修改提交到远程仓库中去,但是试想,git是否是全盘接受你的提交呢?当然不可能,会存在冲突的情况。什么冲突呢?举下面这个例子:
//原始版本,就是保存在你远程仓库中的部分:
public function showName(){
return 'hello world';
}
//新版本,就是你本次committed的内容:
public f