美文网首页
git版本控制

git版本控制

作者: peterz博客 | 来源:发表于2019-03-07 20:44 被阅读0次

    1 、下载安装git

    windows 环境 https://git-for-windows.github.io/ 一路next
    打开项目文件夹 右键 git bash here

    snipaste_20190307_135352.jpg

    2 初始化用户名 邮箱

    git config --global user.name peterz
    git config --global user.email 1070945911@qq.com

    3 项目初始化

    git init

    4 添加文件到本地仓库 (2步)

    step1:
    git add . 表示添加当前目录所有文件
    git add index.php 表示只添加index.php文件
    step2:
    git commit -m "message" 提交 message 为备注

    修改文件也是执行以上两个步骤

    5 删除文件

    git rm index.php
    git commit -m "del index.php"

    6 常规操作

    团队合作,新成员加入 应先在 github项目中将其加为成员
    然后在本地克隆一份远程库
    git clone https://gitee.com/Zyaun/git_test
    上传至远程库(之前先 添加文件到本地仓库)
    git push https://gitee.com/Zyaun/git_test master

    查看仓库当前的状态
    git status

    查看版本改动
    git diff

    拉取远程库
    git pull https://gitee.com/Zyaun/git_test master

    查看日志
    git log
    git log --pretty=oneline 或让日志单行显示

    版本切换
    git reset --hard 版本号
    注意 : 版本号不用写那么长 , 能要能保证不与其他版本号重复就行

    7、分支管理

    7.1 分支有什么用 ?

    在开发中 , 遇到这样的情况怎么办 ?
    网站已有支付宝在线支付功能 , 要添加 " 微信支付 ".
    修改了 3 个文件 , wechat.php , pay.php

    刚做到一半 , 突然有个紧急 bug: 支付宝支付后不能修改订单状态 .
    你需要立即马上修改这个 bug, 需要修改的文件是 , ali.php , pay.php .
    问题是 : pay.php , 已经被你修改过 , 而且尚未完成 .
    直接在此基础上改 , 肯定有问题 .

    把pay.php倒回去 ? 那我之前的工作白费了 .
    此时你肯定会想 : 在做 " 微信支付 " 时 , 能否把仓库复制一份 , 在此副本上修改 , 不影响原仓库的内容 . 修改完毕后 , 再把副本上的修改合并过去 .
    好的 , 这时你已经有了分支的思想 .

    前面见过的master , 即是代码的主干分支 ,
    事实上 , 在实际的开发中 , 往往不会直接修改和提交到master分支上 .
    而是创建一个dev分支 , 在dev分支上 , 修改测试 , 没问题了 , 再把dev分支合并到master上 .
    如果有了分支 , 刚才的难题就好解决了 , 如下图


    image.png

    在做 " 微信支付 " 时 , 我们创建一个wechat分支 .
    把wechat分支commit , 此时 , master分支内容不会变 , 因为分支不同 .

    当遇到紧急 bug 时 , 创建一个AliBug分支 .
    修复 bug 后 , 把AliBug分支合并到master分支上 .

    再次从容切换到wechat分支上 , 接着开发 " 微信支付 " 功能 , 开发完毕后 ,
    把wechat分支合并到master分支上

    7.2 查看所有分支

    git branch

    7.3 创建分支

    git branch ali
    注意 创建分支后任在原来分支内

    7.4 切换分支

    git checkout ali

    7.5 快速创建并切换到分支

    git checkout -b ali

    7.6 合并分支

    git checkout merch 再次切换回merch分支下
    git merge ali 将ali 分支合并

    7.7 删除分支

    git branch -d ali

    8、远程仓库

    8.1 查看远程仓库

    git remote

    8.2 添加远程仓库

    git remote add origin https://gitee.com/Zyaun/git_test 类似给 地址取个别名
    注 : 远程库名一般叫origin , 但并非强制 , 你可以自己起名

    8.3 修改远程仓库名

    get remote rename oldname newname

    9、公钥登陆

    我们 push 本地仓库到远程时 , 总要输入用户名 / 密码 , 这很不方便 .
    配置公钥 , 可以避免频繁输用户名 / 密码的麻烦 .

    9.1 配置 ssh 格式的远程仓库地址

    git remote add 远程仓库名 远程仓库地址
    例 :
    git remote add gitaddr git@git.oschina.net:lianshou/test.git

    9.2 创建 ssh key

    ssh-keygen -t rsa -C "youremail@example.com" , 把邮件地址换成你自己的邮件地址 , 一直回车 , 不用输入密码 . 完成后 , 可以在用户主目录里找
    到 .ssh 目录 , 内有id_rsa和id_rsa.pub两个文件 . id_rsa是私钥 , id_rsa.pub是公钥 .
    这两把钥匙是成对的 , 可以让分别持有私钥和公钥的双方相互认识 .

    9.3 把公钥放在服务器

    用记事本打开id_rsa.pub , 复制公钥内容 .
    登陆 git.oschina.net, 如下图 , 填入公钥并保存


    image.png
    9.4 push 本地仓库到远程 , 发现不用填密码了

    git push gitaddr master

    相关文章

      网友评论

          本文标题:git版本控制

          本文链接:https://www.haomeiwen.com/subject/vjscpqtx.html