SVN和Git的使用方法

SVN

SVN 简介

Subversion(SVN) 是一个开放源代码的版本控制系统,也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
SVN 官网:https://subversion.apache.org/
Github SVN 源码:https://github.com/apache/subversion

SVN 的一些概念

  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
  • Commit(提交):当你已经修改了代码,你就需要Commit到repository
  • Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) –>作出自己的修改并调试成功 –> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。

在Ubuntu下安装

使用 apt-get 命令进行安装:

sudo apt-get install subversion

查询版本,验证是否安装成功。

svn --version

创建版本库

在服务器上创建一个属于我们自己控制版本的文件夹,设置好权限。
注:这里暂时不涉及服务器的搭建,等用到时再补充。可参考:https://www.linuxidc.com/Linux/2016-08/133961.htm

检出

svn checkout http://192.168.1.1:53301/svn/vslam

上传

将要上传的文件,比如my-slam,移动到vslam文件夹下。
上传my-slam文件夹下的所有文件:

svn add my-slam/

当然,还可以上传单个文件或多个文件。
可通过以下命令查询文件状态,表示未上传,A表示已上传。

svn status

提交

svn commit -m “注释信息” 

版本回退

当我们想放弃对文件的修改,可以使用 svn revert 命令。

  • 回退文件版本
svn revert file-name
  • 回退目录版本
svn revert -R directory-name
  • 恢复一个已经提交的版本
    找到仓库的当前版本,比如是22,我们要撤销回之前的版本为 21。
svn merge -r 22:21 file-name

SVN 查看历史信息

通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史:

  • svn log: 用来展示svn 的版本作者、日期、路径等。
  • svn diff: 用来显示特定修改的行级详细信息。
  • svn cat: 取得在特定版本的某文件显示在当前屏幕。
  • svn list: 显示一个目录或某一版本存在的文件。

参考

[1] http://www.runoob.com/svn/svn-create-repo.html
[2] https://blog.csdn.net/chichoxian/article/details/52628786

Git

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

安装与使用

  • 在 Ubuntu 上安装Git
sudo apt-get install git
  • 创建版本库
mkdir learngit
cd learngit
  • 通过git init命令把这个目录变成Git可以管理的仓库:
git init
  • 把文件添加到版本库

首先编写一个readme.txt文件

git add readme.txt
  • git commit命令告诉Git,把文件提交到仓库:
git commit -m "注释信息"

commit可以一次提交很多文件:

git add file1.txt
git add file2.txt file3.txt
git commit -m "add 3 files."
  • 版本回退

git log命令显示从最近到最远的提交日志。

git log

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
使用git reset命令,把当前版本回退到上一个版本:

git reset --hard HEAD^
  • Create a new repository
git clone http://***/***/test.git
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
  • Existing folder
cd existing_folder
git init
git remote add origin http://***/***/test.git
git add .
git commit -m "Initial commit"
git push -u origin master
  • Existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin http://***/***/test.git
git push -u origin --all
git push -u origin --tags

参考

[1] https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

总结

SVN和Git是目前两个主流的版本控制工具,在工作和学习中可能都会用到。
作为入门级用户,先学会提交文件就行了,后续使用中需要用到什么再补充,所以本博客内容上并不全。
以上都是通过命令行操作的,其实还有图形化界面的软件可以使用,比如RapidSVN,但在功能上可能有些欠缺。

你可能感兴趣的:(SVN和Git的使用方法)