git是一个“分布式”的版本控制工具、
git的版本信息可以保存在本地也可以保存在服务器
分布式的好处
速度快、数据备份安全、轻松创建分支
git的使用:
创建git的仓库
1、创建一个仓库
2、初始化项目-随便添加几个文件
3、提交项目到版本控制
git commit - m '标识'
4、配置git的邮箱和用户名(邮箱和用户名随便写)
git config --global user.email "邮箱地址"
git config --global user.name "用户名"
git 的工作原理
git 有一个stage 暂缓区
有一个master 相当于svn trunk(主杆)
提交的时候要把新文件添加到暂缓区,然后再添加到master
git add . 把当前目录下的文件添加到暂缓区
git status 查看文件状态(变成绿色,说明可以提交)
git 版本号“df1bbd58d862c2366e81a61b497e24663662d04c” MD5编码后字符串
5、修改文件提交
修改添加的文件,git commit - m '标识'
modeified变红了
所以,修改文件的提交也要添加到暂缓区
git add .
然后提交 git commit - m '标识'
6、版本回退
git reset --help 查看reset的帮助文档
git reset --hard HEAD^ 回到前一个的版本
git reset --hard HEAD^^ 回到前两个版本
git reset --hard HEAD~N 回到前n个版本
git reflog 查看之前的操作
df1bbd5 HEAD@{0}: reset: moving to HEAD^
590cf08 HEAD@{1}: commit: 添加两行代码
df1bbd5 HEAD@{2}: reset: moving to HEAD^
e3c24a8 HEAD@{3}: commit: 添加一行代码
df1bbd5 HEAD@{4}: commit (initial): 初始化项目
要想回到之前的状态(指定版本的恢复)
git reset --hard 590cf08
HEAD is now at 590cf08 添加两行代码
7、删除
git rm 文件名
8、配置用户名和邮箱
>全局和局部
全局:默认一个git仓库没有配置用户名和邮箱就使用全局
局部:仅针对本项目才有效
文件下得.git文件里面的config就是配置局部用户信息的文件
cat .git/config 查看config里面的信息
配置局部的用户信息:(不可以用户名和邮箱一起配置)
git config "user.name" joan
git config "user.email" joan_wq@sohu.com
8、日志格式
git log 默认模式
git log --pretty=oneline(一行日志格式)
512ae308df63ef127c7f9419a17a302c4664d9b1 添加6行代码
6eb3943c3d62e42021a2bb813394b5f6e128f132 删除Person头文件
a9af46570c911728352cd1f30e7d85e9aa4403f3 添加person头文件
590cf08c204d88907f8fe0679cb1bc2bf2dbfe2a 添加两行代码
df1bbd58d862c2366e81a61b497e24663662d04c 初始化项目
最漂亮的日志格式
配置: git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
执行:git lg
* 512ae30 - (HEAD, master) 添加6行代码 (2 hours ago) <joan>
* 6eb3943 - 删除Person头文件 (2 hours ago) <joan_wu>
* a9af465 - 添加person头文件 (2 hours ago) <joan_wu>
* 590cf08 - 添加两行代码 (2 hours ago) <joan_wu>
* df1bbd5 - 初始化项目 (2 hours ago) <joan_wu>
9、配置别名
git 命令没有缩写的别名
只能配置:git config alias.cfg config(用cfg代替config,给config取别名)
git cfg alias.ct "commit -m" 给commit -m 取别名
10、git的分支
git branch
一个版本发布以后,要加新功能,就要把当前版本拷贝为一个分支
git branch 查看所有的分支
git branch v1 查看指定的分支/创建分支
* master
v1
开发2.0之后要返回修改1.0版本
git checkout v1 切换到1.0版本
master
* v1
绿色代表正在开发的分支
修改完成之后,返回2.0的开发
git checkout master 返回2.0分支
在开发3.0之前,要集成1.0和2.0
git merge v1 把v1整合到当前版本
有冲突的话把冲突代码删掉,然后add、commit提交一下就好
删除分支(也可以一直保留下来)
git branch -d v1 删除1.0版本的分支