【从入门到学废---版本管理工具】史上最实用的git和svn讲解

git - 分布式的版本管理工具

一、背景

linux系统,创始人linus,1999年研发之后即开源。 2002年前,都是linus手动合并到代码库中。
看中了BitKeeper,提供给linux免费试用权。 2005年,由于linux的一个大牛尝试破解BitKeeper。

话说两周之后,linus创建了新的版本管理工具git。

二、git & github

github是网站,是基于git的代码托管平台。

三、git安装

官网下载地址:https://git-scm.com/downloads

1)一直下一步直至安装完成 校验 :git --version 查看版本号

2)配合github,查看开源项目的代码 github官网:https://github.com/

 以slf4j为例,它的代码地址:https://github.com/qos-ch/slf4j
     1)找到【clone or download】按钮,点击download zip (并不常用)
     2)git clone + 链接地址 ,代表将远程代码克隆到本地
          例如: git clone https://github.com/qos-ch/slf4j.git
          在命令提示符中,先找到要存储代码的位置,然后执行clone

   直接下载一个项目文件夹到本地,打开项目时,
          可能需要选中Add as Maven Project这一项(pom.xml上右键)

	3)配置git,获取更改的权限。
     配置项:用户名和邮箱 (从github上注册获取)
     命令: git config --list   显示配置列表
           git config --global user.name "${用户名}"
           git config --global user.email "${邮箱}" 

	4)可选的配置秘钥,才能使用以git开头的链接地址,
      如git@github.com:qos-ch/slf4j.git (Use SSH按钮)

   		a) 在本地生成秘钥
        ssh-keygen -t rsa -C "${邮箱}"
        执行命令后,会提醒你设置文件夹保存key,默认是.ssh文件夹
        不设置密码直接回车后,生成id_rsa.pub秘钥文件
   		b) 在github上配置秘钥
        用户右键 -> settings -> SSH and GPG keys -> new ssh key
   		c) 验证是否添加成功
        使用ssh -T git@github.com 
        或者直接执行 git clone git@github.com:qos-ch/slf4j.git

四、git使用

1)仓库,管理项目的最基础目录。

在github上创建。 然后clone到本地。会提醒这是一个空的仓库。

 a) 创建文件并提交的步骤
      创建新文件后,会询问是否添加到git中,选择是。
        如果文件是红色的,代表没有加入,
        要通过手动添加的方式——> 项目右键 -> Git -> Add
      文件从红色变为绿色,可以提交和推送。 
        项目右键 -> git -> commit file -> 在commit message中写上更改的备注 -> 选择commit and push -> 可以在github中看到更改和提交记录。 
      文件从绿色变为白色,代表和远程仓库是一致的。  

 b) 要对文件进行更改的处理
        在commit file中双击文件,可以查看到修改的内容的(和上一个版本比较)。    

2)查看提交历史

git -> show history
展示谁在什么时间进行了什么修改。
a) 查看某次提交所有相关的文件
在提交记录上右键 -> show all affected files
并且双击文件本身,可以查看对应的修改

3)回退

文件更改后,状态由白色变为蓝色。
回退更改 文件右键-> git -> revert -> 确认
回退提交 执行命令 git reset --hard HEAD~
–hard代表强制执行
HEAD~代表上一次提交 ~可以加上数字
HEAD~2返回上上次提交

五、git的理论知识

1)工作区和暂存区

工作区:就是存放代码的地方 (项目文件夹)
暂存区:临时存放改动的地方 (通常在新建文件时使用)
本地仓库:安全存放代码的地方
远程仓库:(github)

git add 将代码从工作区 -> 暂存区 (把文件托管git)
git commit  将代码从暂存区 -> 本地仓库 (存在一笔提交记录)
git push 将代码从本地仓库 -> 远程仓库 (促进多人合作)

2) 分支(平行时空)

互不影响又同时进行的合作方式
创建仓库时,自动创建一个master主干。
具体使用场景:
master 一般用来存放已上线的代码
开发新的功能时,创建新的分支,每个人使用自己的分支。
最终还是要合并的。 但是合并分支往往要解决冲突。

六、分支使用

1)创建分支

git branch + {分支名}
默认拉取master上代码到新创建的分支中
git checkout + {分支名}
通过查看git branch结果中 * 所在的位置,来定位分支

2)合并分支

master -> test
首先当前分支是需要合并过来代码的分支(master)
git merge test 效果是test的最新提交的代码会出现在master中。

3)冲突解决

项目右键 -> git -> conflicts resolved 
三个对比框  最左侧是当前分支的代码(master)  最右侧待合并的分支代码(test)  中间想要的合并结果

4)推送到远程仓库

git push origin test:test
test:test 冒号前代表 本地分支的名字
冒号后代表 远程分支的名字

七、git仓库

分为本地仓库和远程仓库

1)git init 新建一个本地代码库
2)git clone 从远程拷贝 拿到远程仓库的修改 git pull(拉取)
提交给远程仓库修改 git push(推送)

  如果要创建一个自己的分支  确认要拉取代码的分支
  确保是最新代码  git pull 
  然后执行创建分支的流程(从master拉取) 
  如果需要,再合并一次代码

  写好代码后,再推送给远程仓库
  让代码可以上线,将分支代码再合并回master中

git & svn

1) git是分布式,svn是集中式的 git支持离线,svn必须联网

2) git学习成本高,复杂概念多,svn更简单
git一入深似海,从此svn是路人。

3) git分支廉价,svn分支昂贵

svn - 版本控制工具

1)下载安装 官网地址:https://subversion.apache.org/packages.html 找到最下方的
TortoiseSVN 小乌龟客户端
链接:https://osdn.net/projects/tortoisesvn/storage/1.13.1/Application/TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi/
(验证:在文件夹中右键 能够看到svn checkout)

VisualSVN svn的服务端 找到VisualSVN Server的下载链接
链接:https://www.visualsvn.com/files/VisualSVN-Server-4.1.3-x64.msi

2)创建仓库、用户等 创建了用户、用户组,并且给用户组赋权 读写仓库。

  1. 下载代码 使用svn checkout时, 需要copy服务端仓库的url地址。 需要登录用户名和密码
  1. 提交代码 svn commit
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值