• 2-Git


    Git简介

    • Git是最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

    集中式和分布式

    • 集中式
      • 版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器
    • 分布式
      • 根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上

    安装Git

    • yum install git

    创建版本库

    • 版本库又被称为仓库,【repository】,初期可以理解为一个目录,这个目录里面管理的文件都可以称为被git管理起来的,每个文件的修改,删除等的操作git都能进行跟踪
    • git init
      • 将一个普通目录变成版本库
        • .git是一个目录,就是用来跟踪管理版本库
    • git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
      # cat查看时可以显示
      git config --local user.email "you@example.com"
      git config --local user.name "Your Name"
      • 设置账号的缺省身份标识
      • 用户名和邮箱来自github上的注册
    • git add filename
      • 将文件添加到缓存区/暂存区
      • git add .
    • git commit -m "日志"
      • 提交文件到版本库【仓库】
    • git commit -a -m '日志'
      • git commit -a 相当于运行 git add 把所有当前目录下的文件加入暂存区域再运行
    • 多次add添加,commit提交一次

    版本回退

    • git status
      • 查看仓库当前的状态
    • git diff filename
      • 查看仓库具体的改动,如果无改动,则无显示
    • git reset --hard 版本号【commit id】
      • 或者HEAD^代替版本号
    • git log
      • 查看提交历史记录,以便于确定回到哪个历史版本
    • git reflog
      • 用git reflog查看历史执行过的git操作,从上往下寻找第一个commit的操作,则是未来的最新的版本

    工作区与版本库

    • 工作区
      • 就是你电脑中的能看到的目录【python2020】
    • 版本库
      • 工作区中有一个隐藏的目录.git,该目录就是git中的版本库
      • 暂存区
        • git add
      • git仓库
        • git commit

    其他命令

    • git checkout -- a.txt
      • 撤销工作区的修改(注意空格)
    • git reset HEAD a.txt
      • 撤销暂存区的修改

    $PATH变量

    • 如果需要直接执行某个命令,需要将其添加至PATH路径中
    • echo $PATH
      • 查看PATH有哪些
    • PATH=${PATH}:/opt/bin
      • 追加PATH
        • 暂时
        • 如果需要永久追加,需要将其写入.bashrc(家目录或者etc下的.bashrc)
      • 或者将软链接放入path
        • n -s /root/lotuslaw /usr/bin/lotuslaw

    时光穿梭机

    • git status
      • 查看仓库的当前状态
    • git diff filename
      • 查看仓库中文件的具体改动
    • git reset --hard 【commit id】
      • 版本回退
      • git log
        • 查看提交历史记录
      • git reflog
        • 查看历史执行过的git操作
    • git checkout -- <文件>
      • 丢弃工作区的改动
    • git reset HEAD <文件>
      • 取消暂存
    • 对于删除文件的跟踪
      • rm file
        git rm file # 相当于add
        git commit -m '日志'

    远程仓库

    • 准备
      • 创建GitHub账号
      • 生成ssh key
        • 密钥,建立本地和网络之间的连接
        • ssh-keygen -t rsa -C "github的注册邮箱"
        • cat .ssh/id_rsa.pub
        • 添加私钥
          • ssh-agent bash
            ssh-add id_rsa
      • 密钥GitHub
      • 检测是否添加成功
        • ssh -T git@github.com
        • 码云:ssh -T git@git.oschina.net
    • 建立连接
      • 将本地仓库和远程仓库联系起来
      • git remote add origin ssh地址
        • 关联远程仓库
      • git push [-u] origin master
        • 推送本地仓库到远处仓库
        • 第一次加-u
        • 如果版本有问题,先拉取再推送
        • git push --all
      • git pull origin master
        • 从远程仓库拉取分支到本地
        • git pull --all
      • 本地修改----> add到暂存区 ---> commit到本地仓库 ---> push到远程仓库
    • 克隆
      • git clone ssh地址
        • 克隆到本地之后,就可以任意修改本地工作区中的文件,修改完成之后,首先将修改add到暂存区,然后将暂存区中的修改提交到本地仓库,最后将本地仓库中的修改推送到远程仓库
        • 克隆远程仓库到本地(会自动创建本地仓库并关联)

    分支管理

    • 创建、合并分支
      • git checkout -b dev
        • 切换到一个新分支 'dev'
      • git branch
        • 查看有哪些分支,*号表示当前分支
      • git checkout master
        • 切换分支
      • git merge dev
        • 在master分支下合并分支
        • 合并某个子分支到当前分支
      • git branch -d dev
        • 删除分支
    • 解决冲突
      • - 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
        - 解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
        - 用git log --graph命令可以看到分支合并图
    • 分支合并策略
      • > - master分支应该是非常稳定的,仅仅使用master分支发布版本,平时不在上面干活
        > - 比如:每个人都在dev的分支上干活,每个人都有自己的分支,时不时的向dev上合并代码就可以了
        > - 比如:发布1.0版本,再把dev上的代码合并到master上面
        > - 合并分支时,加上--no-ff参数表示使用普通模式进行合并,合并之后可以查看历史 记录,而Fast-Forword快速模式没有历史记录
      • 合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息
      • 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
      • git merge --no-ff -m "222-1" dev
      • git log --graph

    标签管理

    • 创建标签
      • git tag v1.0
      • git tag v2.0 ae20ec5
        • 为指定commit id创建标签
      • git tag
        • 查看标签
    • 操作标签
      • git show v1.0
        • 查看指定标签的详细信息
      • git tag -a v0.1 -m "version 0.1" e7423195
        • 创建标签,携带标签的描述信息
      • git tag -d v0.1
        • 删除标签
      • git push origin --tags
        • 将本地仓库中的标签推送到远程仓库
      • git push origin :refs/tags/v0.2
        • 删除远程仓库中的指定标签

    解析地址

    • /etc/hosts
    • 10.36.139.5 git.test.com
  • 相关阅读:
    环境变量配置1
    Golang 类型转换,断言和显式强制转换
    Goland could not launch process: decoding dwarf section info at offset 0x0: too short 解决方案
    用puttygen工具把私钥id_rsa转换成公钥id_rsa.ppk
    JetBrains GoLand 2018 激活码/ 注册码(最新破解方法)
    Go学习笔记(只有链接)
    linux中的ftp命令
    Linux的学习之路
    like语句百分号前置会使用到索引吗?
    记录下每月生活开支
  • 原文地址:https://www.cnblogs.com/lotuslaw/p/14801362.html
Copyright © 2020-2023  润新知