一、Git简介
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。开发 Git 是为了作为一种过渡方案来替代 BitKe。
1. 基本的 Git 工作流程如下
- 在工作目录中修改文件
- 暂存文件,将文件的快照放入暂存区域
- 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录
2. 版本控制系统
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。分布式版本控制系统(DVCS),则是指客户端并不只提取最新版本的文件快照,而是把代码库完整的镜像拉取。这样,任何一处协同工作的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
3. 版本库
版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
4. git的三种状态:已提交(committed)、已修改(modified)和已暂存(staged)
已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
git中常出现的状态:
- ??:新添加的未跟踪文件
- MM:修改过的文件
- M:左边M表示该文件被修改了并放入了暂存区
- M:右边M表示该文件被修改了但是还没放入暂存区
- A:新添加到暂存区中的文件
二、部署git
1. 安装git,创建git目录(版本库)并进行初始化
yum install -y git
mkdir /root/demo
cd /demo
git init #初始化,将该目录变为git可以管理的仓库
git status #查看相关信息
2. 在该目录下创建文件并提交
cd /root/demo
vim readme.txt
test
git status -s #查看版本库中文件中状态
git add readme.txt #将要提交的所有修改放到暂存区
git commit -m "v1" #将暂存区所有修改进行提交
第一次使用git进行提交,需要进行填写用户信息
常用文件状态示例
3. 设置忽略文件
cd /root/demo
mkdir env
vim .gitignore
.*
env
git status -s
4. git日志的查看
git log #从最近到最远的提交日志
git log --pretty=oneline #查看简略日志信息
git reflog #查看历史记录
5. git版本的回退
上一个提交状态HEAD^,上上一个提交状态HEAD^^
git reset --hard HEAD^ #当前版本(append GPL)回退到上一个版本(add distributed)
git reset --hard 提交id号 #回退到指定提交状态
6. 删除文件
(1)删除后没有提交,直接使用git checkout --file
rm -f testfile
git status -s
git checkout -- testfile #撤销,恢复文件
(2)删除且提交:git reset --hard (commit id)
rm -fr testfile
git rm testfile
git commit -m "delete testfile"
git status -s
git reflog
git reset --hard 提交后的id号
三、搭建github远程仓库
1. 在www.github.com官网注册一个帐号,创建一个公有仓库(免费)
2. 创建一个项目demo
3. 生成ssh密钥用于连接远程仓库
ssh-keygen
cd /root/.ssh
cat id_rsa.pub
4. 推送本地仓库到远程仓库
git remote add origin git@github.com:youxiaoyu/demo.git
git remote -v #查看远程仓库
git push -u origin master #将本地仓库中的所有内容推送到远程库中
5. 删除本地仓库,克隆远程仓库到本地
git clone git@github.com: