Git是什么
git是一个开源的分布式版本控制系统,由Linux之父开发。git能实现源代码管理:协同开发,方便版本控制。
而GitHub是为开源项目免费提供Git存储的网站。
国内的码云和GitHub功能类似,也能远程托管项目。
Git结构
git由服务端和客户端组成,服务端和客户端都有版本控制功能,都能进行代码的提交、合并。
Git 的结构如下图
git 安装
ubuntu 下安装 : sudo apt-get install git
windows下安装:gitforwindows.org 下载安装
检查是否安装成功 git --version
创建git本地仓库
1. 初始化
创建一个文件夹用于存放项目文件
cd 到该文件夹,执行初始化命令,或者在文件夹中右键打开git bash
执行:
git init
初始化会生成一个.git隐藏文件夹,用于管理版本库
2. 配置个人信息
配置全局信息
git config --global user.name 'xinlan'
git config --global user.email 'xinlan@tz.com'
配置当前用户信息
git config user.name 'xinlan'
git cinfig user.email 'xinlan@tz.com'
配置信息会保存在家目录下
~/.gitconfig
添加文件
存到暂存区
git add readme.txt
git add . # 提交所有工作空间的文件
放入仓库区, -m加备注
git commit -m'添加readme文件'
查看历史版本
git log # 查看现存版本
git reflog # 可查看所有分支的所有操作记录,包括已删除版本
版本回退
git reset --hard HEAD^ # 回退到上一个版本
git reset --hard HEAD^^ # 回退到上上个版本
git reset --hard 版本号 # 回退到指定版本,可先用git log查看
*版本号就是每次commit生成的hash值,只取用前几位
查看状态,改动是否都提交了
git status
撤销修改
-
撤销工作区代码–撤销本地文件修改
git checkout 文件名 # 如果之前没有执行过add,则取消所有操作,不可逆
-
撤销暂存区代码
- 将暂存区代码撤销到工作区
git reset HEAD 文件名
- 撤销工作区代码
git checkout 文件名
对比文件
-
对比本地仓库与工作区
git diff HEAD – 文件名 (–和文件名间有空格)
‘’’ 结果什么都不显示,说明仓库现在采用版本和本地文件一致 ‘’’
-
对比本地仓库的其他版本
git diff HEAD HEAD^ – 文件名
删除文件
-
删除没有存入版本库的文件(没有执行过add)
直接在本地删除,不需要别的操作 -
删除已添加进缓存区但没有进仓库,已经add
- 先撤回工作区
git reset HEAD 文件名
- 直接删除
rm 文件名 # 或手动删除
- 已提交到仓库
- 先撤回工作区
git reset HEAD 文件名
- 运行git add .
git add .
- 提交
git commit -m 'delete some file'`