版本控制介绍和使用

版本控制工具的作用:保存工作的副本,保留代码更改的历史纪录,在需要时返回到工作版本
版本控制的最主要的两个功能是版本的回滚版本的合并

常见的版本控制

集中式

只有一台版本服务器
必须联网才能工作

  • CVS
    最早的开源免费的集中式版本控制工具

  • SVN
    修正了cvs的一些稳定性问题

分布式

每一台电脑都是服务器,强大的分支管理
有本地仓库和远程仓库

  • GIT

GIT

下载安装

下载git
安装基本都是下一步即可

git使用

发送用户名和邮箱给git

每次git提交都需要用户名和邮箱

git config --global user.name "xxx"
git config --global user.email "xxx"

如果不同项目使用不同的用户名和邮箱时,去掉–global执行,需要在有git项目的目录中

查看用户信息

git config --list

创建版本库repository

版本库:可以简单的理解成一个目录,这个目录的所有文件都可以被git管理起来,每个文件的修改,删除,git都能跟踪,以便任何时候都可以追踪历史,或者在将来的某个时刻可以还原

  • 首先创建一个项目目录(文件夹)
  • 在该目录下右键打开Git Bash Here,执行git init
git init
  • 文件夹中出现了.git的隐藏文件夹

创建忽略文件

编译的中间文件,比如build中文件,.class文件等,不需要上传到git,就可以通过忽略文件来实现

  • 工程目录下创建.gitignore文件
touch .gitignore
  • 忽略文件的标准

忽略操作系统自动生成的文件,比如缩略图等。
忽略编译生成的文件等
忽略自己带有的敏感信息的配置文件
可以参考github/ignore

状态命令

查看上次向git提交更改以来修改了哪些文件
版本控制系统只能跟踪文本文件的改动
二进制文件没法跟踪文件的变化(只知道改变了大小,不知道具体改了什么)

在这里插入图片描述
红色文件表示未跟踪的文件

git status

提交到版本库中

添加
  • 添加一个文件
git add 文件名
  • 一次添加多个
git add --all

在这里插入图片描述

提交
git commit -m "描述"

-m后面表示提交的说明

在这里插入图片描述

提交记录查看
  • 查看完整的提交记录
git log

在这里插入图片描述

  • 查看最近n次提交记录
git log -n

在这里插入图片描述

版本管理

版本回退

  • 当前版本往上回退一个版本

    git reset --hard HEAD^
    

在这里插入图片描述

  • 往上回退n个版本

    git rest --hard HEAD~n
    

在这里插入图片描述

  • 回退到某一个版本

    git reset --hard id
    

在这里插入图片描述

id不需要全拷贝

  • 如果回退之后后悔,想恢复到最新版本

    通过git reflog查看每一次记录
    

在这里插入图片描述

	回退到指定的id

在这里插入图片描述

分支管理

每个开发人员都有一个分支,通常还有div分支以及master分支

创建与删除分支

  • 查看当前分支

    git branch
    
  • 创建分支

    git branch zs
    
  • 创建并切换分支

    git checkout -b zs
    这个相当于两个命令
    git branch zs 创建zs分支
    git checkout zs 切换到zs分支
    
  • 删除分支

    git branch -d zs
    

合并分支

把其他分支的内容合并到master分支上

  • 合并到master分支

    切换到master分支
    git merge zs
    

在这里插入图片描述
没有冲突是Fast-forward快进模式

分支冲突

如果不同分支提交相同的文件时则产生冲突

在这里插入图片描述
冲突文件
在这里插入图片描述

修改冲突文件,比如:
在这里插入图片描述
在master分支上面提交,这时其他分支的冲突文件内容还是原来的内容,需要同步master分支的这个文件,所以需要在其他分支合并master分支

远程仓库github

github分为http连接和ssh连接
http连接速度慢,每次连接都需要输入账号密码
使用ssh连接需要配置公钥和私钥,推荐

附加:解决github无法登录

github无法访问

SSH

  • 创建SSH Key

    在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件。如果没有,执行下面的命令创建SSH Key

    $ ssh-keygen -t rsa -C "youremail@example.com"
    

    建议使用真实邮箱
    id_rsa是私钥,id_rsa_pub是公钥

在这里插入图片描述

  • 登录github,打开settings,ssh keys页面,然后点击"New SSH Key",填上任意的title,再key文本框中粘贴id_rsa.pub文件的内容

创建远程仓库

  • 在github中点击"New repository"按步骤创建即可
  • 创建成功后

在这里插入图片描述

添加远程仓库

可以从仓库中克隆出新的仓库,也可以把本地仓库与之关联,然后把本地仓库的内容推送到github仓库

  • 本地仓库关联远程仓库

    添加一个名称为origin的远程仓库
    git remote add origin SSH地址
    

在这里插入图片描述

  • 查看当前远程仓库

    git remote
    

推送到远程仓库

  • 推送到远程仓库

    git push -u origin master分支
    

    把当前分支master推送到远程的master分支,-u会把本地master分支和远程master分支关联起来
    下次再提交的话,可以简便

    git push origin master
    

推送分支

推送到master

不同的分支,最终要提交到master分支,进行合并
需要再本地分支,先合并到master中,然后把本地master再推送到远程的master

从远程仓库克隆

  • 克隆一个本地仓库

    在新的文件夹中,右键打开git bash
    git clone 仓库地址
    如果是http,直接访问即可
    如果是ssh,则需要master管理添加了你电脑的ssh key
    
  • 克隆其他分支

    查看远程分支

    git branch -a
    

    切换分支

    git checkout 分支
    
  • 远程仓库更新

    每次修改之前,首先要从仓库中拉取最新的内容
    git pull
    修改完冲突后,再push到远程
    
  • 删除远程分支

     git push origin --delete 分支
    

一般项目的开发,首先从分配的分支进行下载,下载到本地后,默认有master分支,新建一个自己的分支,编辑,确定代码没问题时,可以进行提交,可以提交到远程此分支。合并master时,首先在本地合并到master中,确保没问题时,提交到远程的master分支中。如果提交到远程master分支时出现冲突,则需要使用git pull更新master,在本地进行冲突修改,修改完成后,提交到远程的master分支即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值