Subversion(SVN) 是一个开放源代码的版本控制系统,也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
SVN 官网:https://subversion.apache.org/
Github SVN 源码:https://github.com/apache/subversion
日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) –>作出自己的修改并调试成功 –> Commit(大家就可以看到你的修改了) 。
如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。
使用 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
svn merge -r 22:21 file-name
通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史:
[1] http://www.runoob.com/svn/svn-create-repo.html
[2] https://blog.csdn.net/chichoxian/article/details/52628786
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^
git clone http://***/***/test.git
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
cd existing_folder
git init
git remote add origin http://***/***/test.git
git add .
git commit -m "Initial commit"
git push -u origin master
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,但在功能上可能有些欠缺。