zoukankan      html  css  js  c++  java
  • 版本管理工具SVN学习(一):简单的SVN命令,兼对比Git

    新公司用SVN来管理代码,而且公司自己搭建了SVN服务器,所以要学习下SVN的相关命令、服务器搭建等技能知识。上家公司是用Git管理代码,而且代码托管在git@oschina上,自然不用操心Git服务器的问题,只要熟悉Git常用的命令就可以了。下面来学习下SVN(客户端)的基本命令,简单来说就是:

    1,如何从远程仓库拉(检出)代码、如何拉取(获取)远程代码的更新

    2,如何检查本地仓库状态

    3,如何添加新文件到代码库

    4,如何提交文件修改到代码库

    5,如何查看修改日志

    6,如何对比文件

    7,如何解决冲突

    8,如何回滚更改

    如何...,暂时只想到上面的需求,以后想到了或遇到了再完善。

    1,先找个SVN服务器来做实验

    其实可以自己搭建一个svn服务器,不过今天暂时先不搭建,先来学svn的基本命令。那么我们先找一个免费的svn服务器,大家可以百度,我找的是这个:淘宝Code

    然后可以根据提示先建一个远程的项目,就相当于在SVN服务器上新建一个项目。这个和Git其实差不太多。

    2,将远程仓库的代码检出到本地

    这一步其实和git也差不多,git是clone到本地。

    3,检查本地代码状态

    在项目目录下面执行:svn status,这个和git status也差不多,只不过,如果没有更改的话,svn好像什么信息也不显示。

    4,添加新文件到本地代码库

    在learn-svn/trunk下

    可以看到svn会提示有新文件被添加,svn add test.note就可以添加文件到版本库,但svn不支持像git add .这样的操作。然后再检查下状态:

    可以看到文件被添加到本地版本库,这里其实相当于git commit,那么如何提交到远程仓库呢?

    5,提交代码到远程仓库

    svn commit -m "add file"就可以提交到远程仓库,这和git的git push不一样。

    6,查看日志

    svn log可以查看提交日志

    svn log -r 3 -v查看版本3的详细日志

    感觉这个和git log不太一样,git log提供的信息好像比较多。

    7,比较差异

    svn diff可以比较代码差异,在修改未提交到远程代码库时可以比较差异,命令:svn diff trunk 远程仓库地址,这个和git差不多。

    8,更新本地代码库和解决冲突

    当a和b同时修改了一个文件,并且a的修改被提交到远程代码库,而b在未更新本地代码库的时候却尝试提交代码到远程代码库,这时是不可能提交成功的。这时b需要先更新本地代码库:

    svn update,这和git fetch/pull不同,但其实实质应该是差不多的,都是先获取远程代码,然后将本地代码与远程代码合并。如果有冲突,则会提示不能合并,解决冲突后才能合并。

    svn解决冲突的操作要比git要复杂一些,有时间再仔细看下。

    今天先到这儿,后续会接着学习如何在本地创建仓库、新建分支、删除分支、合并分支等与分支相关的操作,以及如何搭建SVN服务器。

  • 相关阅读:
    HDU1879 kruscal 继续畅通工程
    poj1094 拓扑 Sorting It All Out
    (转)搞ACM的你伤不起
    (转)女生应该找一个玩ACM的男生
    poj3259 bellman——ford Wormholes解绝负权问题
    poj2253 最短路 floyd Frogger
    Leetcode 42. Trapping Rain Water
    Leetcode 41. First Missing Positive
    Leetcode 4. Median of Two Sorted Arrays(二分)
    Codeforces:Good Bye 2018(题解)
  • 原文地址:https://www.cnblogs.com/yangtoude/p/svn-git.html
Copyright © 2011-2022 走看看