GIT

git简介

  • linus用c语言编写
  • 2005年诞生
  • 分布式版本管理系统
  • 速度快,适合大规模,跨地区多人协同开发

git生态

  • git 分布式版本管理系统
  • gitlab git私库解决方案
  • github git共有库解决方案

git安装

  • 不建议用yum install git,安装的是1.8版本,生产环境2.7以上
  • yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker epel-release
  • wget https://github.com/git/git/archive/v2.7.4.zip
  • unzip v2.7.4.zip
  • make prefix=/usr/local/git all
  • make prefix=/usr/local/git install
  • rm -fr /usr/bin/git
  • ln -s /usr/local/git/bin/git /usr/bin/git
  • git --version

git配置

  • 设置与配置 git config
  • 帮助命令 git help
  • 初始化
  • [root@localhost test]# git init 该目录受版本库控制
  • [root@localhost test]# git config --global user.name "joker" 谁操作
  • [root@localhost test]# git config --global user.email "joker@126.com" 操作者邮箱
  • [root@localhost test]# git config --list
  • user.name=joker
  • user.email=joker@126.com
  • core.repositoryformatversion=0
  • core.filemode=true
  • core.bare=false
  • core.logallrefupdates=true
  • 获取
  • git clone http://xxx.git

四个区域

  • 给我们的直觉,本地仓库,暂存区域,工作目录就是我们初始化的目录

四种状态

  • 工作目录新放入的文件叫做为追踪的文件untracked(这个新文件只能说是放到文件里面了,和git库没有任何关联)
  • git add 直接推送暂存区域staged
  • commit 存成一个版本,变成未被修改的状态unmodified,放到了本地仓库
  • 通过修改这个文件 就会从未被修改的状态变成修改的状态Modifed,那修改的文件会从本地仓库重新拉回到工作目录里面来
  • git add 放到了暂存区域staged
  • commit 存成一个版本,放到本地仓库里面

常用命令

  • git add               加入暂存(索引区)
  • git status                查看状态
  • git commit -m ""      提交更新
  • git rm                     从版本库中移除
  • git rm --cached filename 从暂存区中移除
  • git mv                     相当于 git rm git add 二个命令

文件命令

  • git diff                              本地目录与暂存区是否一致
  • git diff --cached filename   暂存区与本地仓库是否一致
  • git checkout filename             误操作导致工作目录文件清空了,使用最后一次提交至暂存区的内容覆盖本地工作目录文件
  • git reset HEAD filename          误操作导致工作目录文件清空,还提交到了暂存区,那就只能使用最近一次本地版本库的内容覆盖暂存区,再用上面checkout到工作目录恢复了
  • git reset --hard commit ID      回退到某个版本
  • git log --oneline                    查看commit ID
  • git reflog                               当你回到某个版本后,git log只能显示回到的某个版本的提交记录,而reflog显示是全的

分支管理

  • 每次切换分支,也就是指针变动的时候

分支命令

  • git branch
  • git branch branchname           创建分支
  • git checkout branchname        切换分支
  • git merge  branchname           合并分支
  • git branch -d branchname       删除分支

冲突一般是在合并分支的时候,有相同的文件,而文件内容在同一行有不同的内容,就会冲突,要手动解决冲突 

标签管理

标签

  • git tag 不加任务参数,表示显示标签,并且按时间
  • git tag 标签名,默认是给最近的一次提交打标签
  • git tag -a 标签名 -m '描述'  描述打标签,建议
  • git tag 标签名 commitid 给相应的提交打上标签
  • git tag -a 标签名 commitid -m '描述' 给相应的提交打上标签
  • git show 标签名 用于显示跟该标签相关的那次提交的相关信息
  • git tag -d 标签名 删除标签名,不会删除提交
  • git push origin 标签名 把某个标签(必须是本地存在的,否则推送失败)推送到远程服务器

删除远程标签的步骤

  • 删除本地标签 git tag -d v1.0
  • 再删除远程的 git push origin :refs/tags/v1.0
  • 标签跟commit挂钩,只要commit存在于多个分支,那么这几个分支就都能看到这个标签

远程仓库

远程命令

  • git clone https://github.com/jokerbj/cmdb.git
  • git pull                         拉下来,合并
  • git fetch                       拉下来,手动合并
  • git push origin master    上传
  • git remote                     查看远程分支
  • git remote –v                查看远程地址
  • git remote add origin http://xxx  添加远程地址
  • git remote show origin
  • git remote rename oldname newname 变更远程地址名字
  • git push origin dev 添加远程分支
  • git push origin --delete dev 删除远程分支

 

 

 

 

posted @ 2019-01-20 19:57  liqianlong  阅读(196)  评论(0编辑  收藏  举报