Git是一个版本管理操作的工具 非常N,可以很智能的分布式管理,
本网站学习笔记 来自于廖雪峰老师的内容借鉴
安装
yum -y install git
本地设置全局
告知是谁提交代码 信息
# git config --global user.name "xxx"
# git config --global user.email "xxx"
颜色设置
# git config --global color.ui true
查看设置信息
# git config --list
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
初始化仓库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
[root@localhost ~]# mkdir learngit
[root@localhost ~]# cd learngit/
[root@localhost learngit]# pwd
/root/learngit
[root@localhost learngit]# git init
Initialized empty Git repository in /root/learngit/.git/
[root@localhost learngit]# ls -a
. .. .git
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git
的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了
提交代码流程
先创建文件
# cat readme.txt
Git is a version control system
Git is free software
一定要放到learngit
目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。
第一步,用命令git add
告诉Git,把文件添加到仓库:
git add readme.txt 第二步,用命令git commit
告诉Git,把文件提交到仓库:
# git commit -m "wrote a readme file"
[master (root-commit) d1b9afa] wrote a readme file
1 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 readme.txt 查看状态
#git status
回退版本
# git reset --hard HEAD^
注 ^表示上个版本 ^^表示上两个版本 回退指定版本
# git reflog
8b1cc8f HEAD@{}: HEAD^: updating HEAD
10c245e HEAD@{}: commit: add 2hehe
8b1cc8f HEAD@{}: commit: the 2th commit
9ec14f1 HEAD@{}: commit (initial): the first commit
# git reset --hard 9ec14f1
HEAD is now at 9ec14f1 the first commit
git checkout -- readme.txt #从新拉取数据
远程仓库
在github上面创建一个仓库 然后加入本地的公钥上传到github上面的setting里面的SSH-KEY
本地创建秘钥
# ssh-keygen -t rsa
公钥上传到setting 设置SSH Key
#cd /root/oldboy
#git remote add origin git@github.com:yefei520/demo.git
#git pull
#git pull origin master
#git push -u origin master
git Tag标签
创建标签
#git tag -a v1. -m "information" #上面的命令我们创建了本地一个版本V1.,并且添加了附注信息 ‘information’ #查看标签
#git tag
v1. #获取标签显示附注信息
#git show v1.
但是目前这个标签仅仅是提交到了本地git仓库,如何同步到远程代码库
tag远程推送
#git push origin --tags 这样我们就把本地版本推送到了远程代码仓库
如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.
删除标签:
#git tag -d v1.
到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?
这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:
#git push origin :refs/tags/v1.
这时本地和远程的 V1.2 版本已经被我们移除掉.
如何获取远程版本:
#git fetch origin tag v1.
这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.
Github 是国外的 比较慢 而且是公开的 如果要加密 需要钱 但是有开源的Gitlab 开源的软件 可以替代Github 我们开下一章 如何安装Gitlab