版本控制SVN和Git

2022-09-28 14:44:30 浏览数 (1)

版本控制

1.为什么需要版本控制?

从个人开发过渡到团队协作。

2.版本控制工具点击下载

  • 集中式版本控制工具 CVS、SVN、VSS……
  • 分布式版本控制工具 Git、Mercurial、Bazaar、Darcs……

3.SVN工作机制

  • 检出(Checkout)
    • 把服务器端版本库内容完整下载到本地。
    • 在整个开发过程中只做一次。
  • 更新(Update)
    • 把服务器端相对于本地的新的修改下载到本地。
  • 提交(Commit)
    • 把本地修改上传到服务器。

分享博客:SVN使用—工作模式及运行原理以及优缺点对比

4.SVN服务器端安装

这里教大家安装svn到linux上,打开虚拟机,打开SecureCRTPortable.exe。

输入命令:yum install -y subversion

查看版本是否安装成功:svn --version

5.创建版本库

①SVN服务配置文件

vim /etc/sysconfig/svnserve,这个文件只是看看,不需要改。

②创建版本库目录和项目目录

输入命令:mkdir -p /var/svn/pro_oa

pro_oa:这里是你要上传项目到服务器是的仓库名,我这里用了简写,一个oa项目的仓库名

③执行svnadmin命令真正创建版本库

输入命令:svnadmin create /var/svn/pro_oa

④将来的访问方式

svn://ip地址:端口号(默认可以不用写)/版本库

⑤启动SVN服务

代码语言:javascript复制
输入命令:systemctl start svnserve.service
输入命令:systemctl enable svnserve.service

开启匿名访问

代码语言:javascript复制
vim 版本库根目录/conf/svnserve.conf
anon-access = write

关闭selinux

vim /etc/sysconfig/selinux

SELINUX=disabled

reboot

6.Eclipse访问SVN服务器

①Eclipse中的SVN插件

[1]简介

Subversive:Eclipse团队开发的SVN插件。 安装麻烦点,使用很爽

Subclipse:Apache的SVN团队开发的Eclipse插件。安装很爽,使用容易出错

我们安装Subversive

[2]安装过程

install

②创建资源库位置

③Eclipse中忽略特定文件

操作方法:

  • 第一步:打开~AppDataRoamingSubversionconfig文件
  • 第二步:修改global-ignores

 global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store .settings */.settings/* .classpath .project target */target/*

④分享工程

  • 第一步 工程→右键→Team→Share Project...
  • 第二步 版本控制工具中选择SVN
  • 第三步 选择一个已经存在的资源库位置或新建一个 可以直接点Finish(工程在SVN服务器端的目录名和工程名一致;上传工程目录的日志使用默认值)
  • 第四步 确认工程根目录下子目录和文件是否全部上传

⑤常见图标含义

⑥检出

  • 第一步 在Eclipse中执行Import操作
  • 第二步 确认资源库位置
  • 第三步 找到SVN服务器端工程对应的目录
  • 第四步 选择检出方式
  • 第五步 Finish
  • 第六步 转换工程类型

⑦其他基本操作规律

资源→右键→Team→相关菜单项

⑧解决冲突

  • 第一步 冲突文件→右键→Team→Edit Conflicts
  • 第二步

7.Git简史

8.Git工作机制

9.Git和代码托管中心

代码托管中心负责维护远程库。

  • 局域网
    • GitLab
  • 外网
    • GitHub
    • 码云

10.本地库和远程库交互机制

①团队内协作

②跨团队协作

11.Git安装

12.Git常用命令

On branch master: 在master的分支上

No Commits yet :现在没有任何的提交到本地库

Untracked files:没有追踪的文件,追踪:就是git把这个文件管理起来了

(user "git add <fiile>..." to include in what will be committed):使用git add 将这个文件包含到将要提交的地方,也就是暂存区,我们现在在工作区。

nothing added to commit but untracked files present (use "git add" to track):你没有任何要添加的文件到暂存区,但是存在未追踪的文件

git add:有二个作用:一个是让Git去追踪这个文件,另一个是让文件包含到暂存区。

Changes to be committed:检测到要被提交的修改,就是new file:hello.txt

(use "git rm --cached <file>..." to unstage):执行git rm --cached 文件名可以撤销,rm:删除,cached:缓存,把暂存区的文件删除

在(root-commit)后面有一个版本号 ,它是哈希加密的一个结果。

git commit git commit -m "日志信息" 文件名,需要先让Git去追踪,之后就可以直接提交

版本穿梭:通过版本号回到原来的版本

现在的指针指向现在的版本,只是做了一个版本的移动,没有创建新的版本。

13.分支操作

①什么是分支

在版本控制过程中,同时推进多个任务 

②分支的好处

同时并行推进多个功能开发,提高开发效率 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

③分支操作

master:颜色为绿色,是现在所在的分支。

git merge 分支名

把指定的分支合并到当前分支上

什么叫合并呢?

我们同时进行二个项目的开发,做完后要将项目合并到一起。

我们先回到主干分支

然后将hotfix分支合并,可以看到他增加了一行,减少了一行。

14.GitHub操作

名称

Email地址

javawxid@aliyun.com

GitHub账号

BoomManager

15.创建远程库

可以创建GitHub:有许多国外的优秀项目,但网络连接速度较慢。也可以创建码云账户:国内的代码托管中心,国内的程序员更适应些。

分享GitHub的注册与使用(详细图解)

16.远程库操作

①创建远程库地址别名

git remote -v 查看当前所有远程地址别名 git remote add 别名 远程地址

②推送

git push 别名 分支

③克隆

git clone (你要克隆谁的,他的远程地址)

注意:先进入到你自己需要克隆到的目录,然后在克隆别人的远程库地址

④邀请加入团队

*⑤拉取: *从远程库拉取到本地库

git pull 远程库地址别名 远程分支名

我现在用了别名origin,添加别名:git remote add 别名 远程地址

17.跨团队协作

分享:团队协作,组织和分支

18.SSH登录

进入当前用户的家目录 cd ~删除.ssh目录 rm -rvf .ssh运行命令生成.ssh密钥目录 ssh-keygen -t rsa -C javawxid@aliyun.com[注意:这里-C这个参数是大写的C]进入.ssh目录查看文件列表 cd .ssh ls -lF查看id_rsa.pub文件内容 cat id_rsa.pub复制id_rsa.pub文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keysNew SSH Key输入复制的密钥信息回到Git bash创建远程地址别名git remote add origin_ssh git@github.com:BoomManager/Repository01.git推送文件进行测试

19.Eclipse操作

①初始化本地库

②忽略文件

编辑一个专门配置文件忽略的文件,文件名任意

代码语言:javascript复制
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target

在~/.gitconfig文件中引入上述文件

代码语言:javascript复制
[core]

    excludesfile = C:/Users/Lenovo/Java.gitignore

[注意:这里路径中一定要使用“/”,不能使用“”] 

③推送

④克隆

⑤分支操作

分享git教程

0 人点赞