版本控制工具GIT and SVN 命令对比

Git 安装

  1. Debian /Ubuntu OS

Apt-get install libcur14-gnutls-dev libexppat1-dev gettext libz-dev libssl-dev

Apt-get install git

   2. Centos /RedHat

       yum install crt-devel expat-devel gettext-devel openssl-devel zlib-devel

      yum -y install git-core

Git 配置

     /etc/gitconfig: 对所有用户都适用的配置, --system选项

     ~/.gitconfig: 用户目录下的配置文件只是用当前用户。 --global选项

    .git/config: 项目的配置文件

Git 用户信息

    配置个人名称和电子邮件

    git config --global user.name "****"

    git config --global user.email xxx@test.com.cn

Git 查看配置信息

    git config --list

Git 工作区, 暂存区和版本库

   工作区: 就是电脑里可以看见的目录

    暂存区: 一般存在.git 目录下的index文件中

    版本库: 工作区里面隐藏的目录.git, 不算工作区,而是git的版本库

  

   Git 初始化

       git init     or  git init newFolder

       git add *.sh   把所有以sh结尾的文件都要添加的暂存区

       git add README  把README文件添加到暂存区

       git commit -m '初始化项目版本'  将目录下sh文件和README文件提交到代码库中

       注意: linux系统中使用单引号‘’, windows中使用双引号“”

   Git Clone

       git clone <repo>  <directory>      directory本地目录

       git add   添加文件到仓库

       git status  查看仓库当前的状态, 显示有变更的文件

       git diff  比较文件的不同,即暂存区和工作区的差别

       git commit   提交暂存区文件到本地仓库

       git reset    回退版本

       git rm   删除工作区的文件

       git mv  移动或者重命令工作区的文件

       git log  查看历史提交记录

       git blame<file>  以列表的形式查看历史修改记录

   

  Git 远程操作

      git remote 远程仓库操作

      git fetch  从远程获取代码库

      git pull   下载远程代码并合并

      git push    上传远程代码并合并

  Git 创建, 切换和合并分支

      git branch (newBranch)    创建

      git checkout (newBranch)    切换

      git merge   newBranch 将newBranch合并到主分支master

      git checkout -b newBranch   创建并切换到newBranch分支

  Git 删除分支

     git branch -d (delBranch)  删除delBranch分支

  Git Log

    git log --online  -n  查看n条历史记录的简洁版本

    git log --reverse   逆向显示所有日志

    git log --author 查找某个用户提交的代码

    指定日期  --since  --before    or    --until   --after   

    git log --oneline --before={3.weeks.ago} --after={2021-04-18} --no-merges

 Git 标签

    git tag

     -a    创建一个带注释的标签

Git 查看标签

    git log --decorate

    git tag

Github 远程仓库

    添加远程仓库   git remote add [localdir] [url]

提交到github 

    Git remote add origin git@******.git

    Git push -u origin master

查看当前远程库

    git remove -v

从远程库下载新分支和数据  git fetch

从远程仓库提取数据并尝试合并到当前分支   git merge

先fetch 后merge, fetch是master分支已经被更新,用merge命令将更新同步到本地

     git push origin master  推送到github

Github删除远程仓库

    git remote -rm [别名]

$ git remote -v
origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
origin    git@github.com:tianqixin/runoob-git-test.git (push)

# 添加仓库 origin2
$ git remote add origin2 git@github.com:tianqixin/runoob-git-test.git

$ git remote -v
origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
origin    git@github.com:tianqixin/runoob-git-test.git (push)
origin2    git@github.com:tianqixin/runoob-git-test.git (fetch)
origin2    git@github.com:tianqixin/runoob-git-test.git (push)

# 删除仓库 origin2
$ git remote rm origin2
$ git remote -v
origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
origin    git@github.com:tianqixin/runoob-git-test.git (push)

=========================================================================

==================================================================================================================================================

SVN 安装

 Linux系统下都自带了SVN(subversion)

If not 使用:yum install subversion

Ubuntu:

Apt-get install subversion

命令

Svn checkout [url] 创建工作区, 和git branch类似

Svn update  更新版本库,即更新工作副本和版本库一致

Svn commit  执行变更和git一致

Svn Rename   更改文件、目录名字

Svn update [-version]更新到指定的版本

Svn revert <file> 文件回退,退到未修改的状态

Svn revert -R <folder>文件夹回退

恢复已经提交的版本, 22当前版本 21是之前的版本

svn merge -r 22:21 readme

Svn创建版本库

Svnadmin create /opt/svn/runoob

启动服务

Svnserve -d -r 目录 --listen-port 端口号

1、svn 服务配置文件 svnserve.conf

svn 服务配置文件为版本库目录中的文件 conf/svnserve.conf。该文件仅由一个 [general] 配置段组成。

[general]
anon-access = none
auth-access = write
password-db = /home/svn/passwd
authz-db = /home/svn/authz
realm = tiku

anon-access: 控制非鉴权用户访问版本库的权限,取值范围为 "write"、"read" 和 "none"。 即 "write" 为可读可写,"read" 为只读,"none" 表示无访问权限,默认值:read。

auth-access: 控制鉴权用户访问版本库的权限。取值范围为 "write"、"read" 和 "none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限,默认值:write。

authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径,默认值:authz。

realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件。默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)。

Svn 查看历史信息

svn log: 用来展示svn 的版本作者、日期、路径等等。

svn diff: 用来显示特定修改的行级详细信息。

svn cat: 取得在特定版本的某文件显示在当前屏幕。

svn list: 显示一个目录或某一版本存在的文件。

如果希望得到目录的信息要加 -v。

如果希望显示限定N条记录的目录信息,使用 svn log -l N -v

Svn 创建副本

Svn copy trunk/ branches/my_branch

合并my_branch到主分支trunk, 先切换到trunk, 然后执行svn update. 最后在将my_branch合并到trunk上

Svn merge ../branches/my_branch

Svn 标签

创建tag  svn copy trunk/ tags/v1.0

查看: ls tags/

查看状态: svn status

提交tag内容: svn commit -m "tags v1.0"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值