git 知识总结 -- 入门篇
git 知识总结 – 入门篇
一、数据库 (Repository)
远程数据库:配置有专门的服务器,为多人共享而建立的数据库。
本地数据库:个人用户使用,在用户机器上配置的数据库。
二、创建本地数据库
一般有两种方式来创建数据库,一种是创建全新数据库,另一种是复制远程数据库。
三、工作树和索引
工作树:我们操作的目录称为工作树。
在工作树与数据库之间有一个区域为索引,为了准备向数据库进行提交操作。
在执行提交操作时,是先把工作树的状态保存至索引,然后再保存至数据库中。
索引的作用:避免不必要的文件提交;将文件修改的一部分加入索引提交。
四、基本操作
1.修改记录的提交(commit)
将文件或目录添加、变更保存到数据库中。数据库中会自动生成上次提交与当前提交状态的差异记录(revision)。
日志:日志信息中会记录所有的提交。
提交时要认真填入提交信息,格式如下
第一行: 提交的修改内容摘要
第二行: 空行
第三行及以下:修改的理由
PS:不同类别的修改要分类提交,方便以后从历史记录中寻找修改内容。
2.推送(push)
push将本地数据库的内容推送至远程数据库,使远程数据库与本地状态保持一致。
3.克隆(clone)
clone操作可以完全复制远程数据库的所有内容,包括内容的变更履历,克隆后仍然可以查看历史记录并操作。
4.拉取(pull)
pull操作将远程数据库的修改内容更新至本地数据库。
进行拉取操作,就是从远程数据库中下载最近的变更日志,并覆盖本地数据库的相关内容。
拉取(pull)和克隆(clone)的区别:
克隆:当本地无数据库时,将整个远程数据库完全复制到本地来,是一个本地从无到有的过程。(一般用于新机器clone整个数据库)
拉取:从远程数据库获取最新版本并合并到本地数据库,是一个本地更新的过程。
ps:进行推送操作前,一般先进行拉取操作获取远程最新版本,防止推送因本地与远程版本不一致导致失败。
通俗来说,就是在你推送之前,有其他用户进行了对远程数据库的推送,如果这时你进行推送的话,会将他人的修改记录覆盖掉,那么他人的推送记录就会丢失。
五、解决冲突
冲突: 因本地与远程的版本不同,在进行拉取时,会进行自动合并,但如果在同一个位置产生了内容冲突,系统会因为不知道保留哪一个而发生冲突。
冲突的解决: Git会在发生冲突的地方修改文件内容,
如下所示:
行1内容
行2内容
<<<<<<< HEAD
内容x
=======
内容y
'>>>>>>17c860612953c0f9d88f313c8dfbf7d858e02e91
PS:内容x为本地数据库的内容,内容y为远程数据库的内容。
操作为进行对内容x,y的手动取舍修改,然后删除多余的标识行,之后提交,即可进行推送操作。