美文网首页
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

相关文章

  • 学习笔记-01

    原视频 版本控制介绍 集中式版本控制 问题:单点故障 分布式版本控制 Git安装 video Git结构 Git和...

  • 01、版本管理-GIT

    一、版本控制 二、版本控制软件 GIT 分布式版本控制系统 SVN 集中式版本控制系统 三、git安装 四、win...

  • 01、版本管理-GIT

    一、版本控制 二、版本控制软件 GIT 分布式版本控制系统 SVN 集中式版本控制系统 三、git安装 四、win...

  • git的及基本使用

    git 版本控制系统(VCS) 本地式版本控制系统 集中式版本控制系统 SVN 分布式版本控制系统 Git g...

  • 关于在项目中使用git的工具选择

    作为版本控制的新秀,git已经成为主流的代码版本控制系统。git不同与svn、cvs等集中版本控制系统。git作为...

  • 2018-09-30 Day31 - 学习Git

    Git是一个版本控制工具 -- 分布式的版本控制系统Mercury - python开发的版本控制软件 Git操作...

  • Git的初步了解

    Git的初步了解 Git的定义Git版本控制系统功能版本控制主动提交中央仓库分类 使用Git的原因 Github和...

  • Git 版本控制工具 (最全命令行总结)

    一 :Git 简介 1、Git 是什么 Git 是分布式版本控制系统,用于开发时版本控制 2、Git 与 SVN...

  • Git 工作原理,基本操作,创建与合并分支

    前东家使用 Perforce 做版本控制,现东家使用 Git。 Git 工作原理 Git 和其他版本控制系统的主要...

  • git与ES6

    git git介绍 git(https://github.com/)是分布式版本控制技术SVN是集中式管理版本控制...

网友评论

      本文标题:git版本控制

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