Git是一个分布式版本管理系统,是为了更好地管理Linux内核开发而创立的。
概述
数据库 (Repository) 是记录文件或目录状态的地方,存储着内容修改的历史记录。在数据库的管理下,把文件和目录修改的历史记录放在对应的目录下。
Git的数据库分为远程数据库和本地数据库的两种。
- 远程数据库: 配有专用的服务器,为了多人共享而建立的数据库。
- 本地数据库: 为了方便用户个人使用,在自己的机器上配置的数据库。
如果想要公开在本地数据库中修改的内容,可以把内容上传到远程数据库。另外,通过远程数据库还可以取得其他人修改的内容。
创建本地数据库的方法有两种:一种是创建全新的数据库,另一种是复制远程数据库。
若要把文件或目录的添加和变更保存到数据库,就需要进行提交。
执行提交后,数据库中会生成上次提交的状态与当前状态的差异记录(revision)提交是以时间顺序排列状态被保存到数据库中的。凭借该提交和最新的文件状态,就可以知道过去的修改记录以及内容。
系统会根据修改的内容计算出没有重复的40位英文及数字来给提交命名。指定这个命名,就可以在数据库中找到对应的提交。
执行提交时,会要求输入提交信息(空白的状态下执行提交会失败的)。
Git的标准提交注解:
第1行:提交修改内容的摘要
第2行:空行
第3行以后:修改的理由
在Git管理下,实际操作的目录被称为工作树。在数据库和工作树之间有索引,索引是为了向数据库提交作准备的区域。
Git基础
Git 常用命令有:git clone、git push、git add 、git commit、git checkout、git pull等
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
git init 初始化仓库
可以看到项目中生成了 .git 这个子目录,所有有关此项目的所有内容和元数据都存放在这里。(.git 默认是隐藏的,可以在查看中设置勾选显示隐藏项)
git clone 克隆仓库
git clone命令,可以复制远程仓库的所有代码和历史记录,并在本地创建一个与远程仓库相同的仓库副本。
git add 添加文件到暂存区
运行git add命令,可以让 Git 知道哪些文件的修改应该包含在下一次提交(commit)中 添加一个或多个文件到暂存区:
git add [file1] [file2] ...
添加指定目录到暂存区,包括子目录:
git add [dir]
添加当前目录下的所有文件到暂存区:
git add .
git commit 将暂存区内容添加到仓库中
git commit 命令将暂存区内容添加到本地仓库中。
git commit -m [message]
其中[message] 可以是一些备注信息。
git pull 下载远程代码并合并
用于从远程获取代码并合并本地的版本
将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
git pull origin master:brantest
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin master
git push上传远程代码并合并
用于从将本地的分支版本上传到远程并合并。
将本地的 master 分支推送到 origin 主机的 master 分支:
$ git push origin master
分支管理
Git 分支实际上是指向更改快照的指针。
创建分支命令:
git branch (分支名)
切换分支命令:
git checkout (分支名)
合并分支命令:
git merge
在合并分支时有时候会出现合并冲突,必须要在处理完冲突后才能合并分支。
列出分支基本命令:
git branch
没有参数时,git branch会列出本地的分支。
$ git branch
* master
意为存在一个叫做master的分支,并且该分支是当前分支。
$ git branch test
$ git branch
* master
test
这样就多了一个新分支test
删除分支命令:
git branch -d (分支名)