一、Git简介
1、Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
2、Git与SVN区别
区别 | Git | SVN |
---|---|---|
核心区别 | 是分布式的 | 其他都是集中式的 |
数据存储方式 | Git 把内容按元数据方式存储 | SVN 是按文件,所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里 。在 Subversion 中,版本库的数据存储有两种方式,一种是在 Berkeley DB 数据库中存放数据;另一种是使用普通文件,采用自定义的格式来储存,称为 FSFS。 |
分支区别 | 分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录 | 分支其实就是 trunk 版(主干线)的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的 |
版本号 | Git 没有一个全局的版本号 | SVN 有全局的版本号 |
内容完整性 | Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。 | Git 的内容完整性要优于 SVN |
二、Git安装配置及工作流程
1、Ubuntu 下git 安装: apt-get install git
2、Ubuntu 下git 配置:
$ git config --global user.name "smileofyue"
$ git config --global user.email ymx@163.com
3、查看配置信息:
命令:git config --list
4、Git 工作流程:
一般工作流程如下:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
5、 Git 工作区、暂存区和版本库:
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
三、Git基本操作
1、Git创建仓库
创建仓库命令:git init
查看仓库状态:git status
忘记切换目录 直接在家目录创建了,故删除本地仓库,重新创建。(记得切换目录啊)
删除本地仓库:先找到目录下隐藏的 .git 命令:ls -a
在删除 .git 命令:rm -rf .git
ls -a
查看已经删除了
切换目录:cd gitread
然后重新初始化本地仓库
2、Git基本操作
(1)创建仓库命令:
git init
初始化仓库git clone
拷贝一份远程仓库,也就是下载一个项目
①从本地仓库克隆一个裸仓库:git clone --bare 绝对路径 (这个仓库也可以作为远程仓库)
(2)提交与修改:
git add
添加文件到仓库git status
查看仓库当前的状态,显示有变更的文件git diff
比较文件的不同,即暂存区和工作区的差异git commit
提交暂存区到本地仓库git commit -m "提交说明“
git reset
回退版本git rm
删除工作区文件git mv
移动或重命名工作区文件
这里连接一个远程仓库 ,连接我的 github仓库。
(3)提交日志:
git log
查看历史提交记录git blame <file>
以列表形式查看指定文件的历史修改记录
(4)远程操作:
git remote
远程仓库操作git fetch
从远程获取代码库git pull
下载远程代码并合并git push
上传远程代码并合并
①连接远程GitHub仓库:(新添加)
git remote add origin git@github.com:smileofyue/gitread.git
使用ssh协议,如果连接的远程仓库不是我自己的话,用https协议只能读取不能写入,如果用ssh协议则不存在这种问题
ssh协议:git@github.com:smileofyue/gitread.git
https协议:https://github.com/smileofyue/gitread.git
git remote -v
显示所有远程仓库
git remote rm name
删除远程仓库
git remote rename old_name new_name
修改仓库名
提交到 Github:git push -u origin master
②git pull
命令用于从远程获取代码并合并本地的版本。
git pull <远程主机名> <远程分支名>:<本地分支名>
3、Git分支管理
git branch (branchname)
创建分支git checkout (branchname)
切换分支git merge
合并分支git branch
查看分支git branch -d (branchname)
删除分支git merge --abort
取消合并
4、Git查看提交历史
git log
查看历史提交记录git blame <file>
以列表形式查看指定文件的历史修改记录