svn是集中式的,git是分布式的,但是我们日常使用的都是按照集中式唯一服务器仓库的方式来去做的,最终我们的代码都要提交到一个唯一仓库中。

他们最大的区别是本地工作拷贝的工作方式不同,

一、svn本地工作拷贝,包括分支都是目录,直截了当,看到的就是服务器的,svn update 更新服务器到本地;svn commit 就是提交到服务器

二、git与svn对比,本地工作拷贝的工作方式就大大不同了,git主要是分支 有本地分支  和远程分支,也就是 local(即branch) 和remote 的区别,可以使用命令:

git remote -v #查看git仓库关联的远程分支,可以有多个,都有别名(例如 origin 对应着远程的 git@xxx.com/project/server.git)

git branch -v #查看本地分支,本地分支 可选设置 《上游分支》

git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]

如 git branch master --set-upstream-to origin/master #设置本地的master 的上游分支为 origin/master
分支 master 设置为跟踪来自 origin 的远程分支 master。

git status       #查看当前分支的修改状态,并且 也可以查看 对应的 《上游分支》的信息,如下图 红字所示。

位于分支 master
您的分支与上游分支 'origin/master' 一致。
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存) 新文件: pbtest/package_depends.sh 尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动) 修改: model/sql/main_db.sql
修改: model/sql/server_db.sql 未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容) .gitignore
.vscode/
api/protocol_test.go

可以使用

git branch --unset-upstream [<branchname>]

命令来删除当前分支的 《上游分支》

如 git branch --unset-upstream master

再次使用git status 就会发现,少了

您的分支与上游分支 'origin/master' 一致。

这一行了。

三、svn info 所显示了当前工作拷贝的服务器端与本地信息,git没有info的指令,但是我们可以组合,那就是 git remote -v +git status + git log -1 ;

四、svn log 与git log对比

之前我一直都在使用 TortoiseSVN 客户端,查看日志,查看分支树,查看 blame 修改追溯,都特别方便,但是git 查看log 其实还是没那么方便的,待梳理,学习。

-------

以前环境是 Windows7 +TortoiseSVN +Visual Studio 2013(C++)

现在环境是 DeepinOS15+git +codelite(Go语言)

svn与git操作对比 (未来有空做一个 svn与git实战对比 )的更多相关文章

  1. 基于ABP做一个简单的系统——实战篇:1.项目准备

    现阶段需要做一个小项目,体量很小,业务功能比较简单,就想到用最熟悉的.net来做,更何况现在.net core已经跨平台,也可以在linux服务器上部署.所以决定用.net core 3.1+mysq ...

  2. 用nodejs做一个svn密码修改页面

    linux上配置好svn服务后,管理修改密码还得去手工修改passwd这个文件,略麻烦,其实网上应该有配套的web管理修改界面程序.但我想自己用nodejs写一个,因为用node不用配置复杂的服务器. ...

  3. 基于ABP做一个简单的系统——实战篇:2.代码生成器

    上一篇正说着呢,代码生成器就来了. 1.适用于ABP官网的Startup Template V3.x的包含了登录.用户等页面的MPA应用模板2.当前view仅支持文本框生成,远期规划根据字段类型生成不 ...

  4. 基于ABP做一个简单的系统——实战篇:4.基于富文本编辑器,Razor模板引擎生成内容并导出Word 填坑记录

    起因 需求是这样的,有一种协议需要生成,协议的模板是可配置的,在生成过程中,模板中的内容可以根据约定的标记进行替换(就像mvc的razor模板一样).生成后的内容还需要导出成word或pdf. 常见的 ...

  5. git 操作详情

    Git 教程 1.Git 是一个开源的分布式版本控制系统 2.Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开源版本控制软件 3.Git 与常用的版本控制工具 ...

  6. git操作github

    转自http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html 怕找不到~ 本文在我之前的那篇<git/github学习笔记>的 ...

  7. 常用 Git 操作

    最新博客链接:https://feiffy.cc/Git 日常用到的GIT的一些操作,记下来,以备参考. 删除文件 git rm filename git commit -m "remove ...

  8. Git操作(及操作github)

    一.git操作: 1.创建一个项目: 2.打开项目,在项目目录下右键单击--打开 git bash: 3.初始化项目仓库  创建项目仓库 命令:   git init ; git status 查看文 ...

  9. AS中Git操作和Git工作流

    查阅并学习安卓中如何使用Git,并扩展学了下Gitflow工作流程,以下是我觉得有用,系统,详细的相关文章. AS中Git操作系列 https://www.jianshu.com/p/0cc226ee ...

随机推荐

  1. wap页面缩放

    html{font-size: 100%;}.in-main{ min-width:320px; max-width:640px; margin:0 auto; font-size:14px; bac ...

  2. Linux VMware tools安装步骤

    Linux VMware tools安装步骤: 1.安装环境介绍 #虚拟机版本:VMware-workstation-full-10 #linux分发版本:CentOS-6.4-i386-LiveCD ...

  3. DOM事件监听器

    DOM事件监听器,允许一个事件触发多个方法.在实际工作中应用比较多. 它的调用形式如下: <body> <div> DOM事件监听器,允许一个事件触发多个方法. </di ...

  4. 《剑指offer》-找到字符串中第一个只出现一个的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  5. .net的架构模式

    一:ADO.NET实现三层架构 不用三层的普通的查询写法: string sql = string.Format("select * from Studnet where StuName l ...

  6. php 发送超大数据处理

    set_time_limit(0);//设置永不超时 ignore_user_abort(); //设置客户端断开,继续处理 //总数 $allusercount= $this->gamedb_ ...

  7. [转] iOS开发工具——网络封包分析工具Charles

    简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使 ...

  8. c++ primer 笔记 (三)

    标准库类型string 和 vector ,分别定义了大小可变的字符串和集合.                 bitset,提供了一个抽象方法来操作位的集合.提供更方便的处理位的方式(相对于整型值上 ...

  9. SQL存储过程使用参考代码

    存储过程   use EBuy go  --常用的系统存储过程  sp_addmessage  --将新的用户定义错误消息存储在SQL Server数据库实例中  sp_helptext  --显示用 ...

  10. Unity3D 中的面向对象设计 {游戏对象(创建、删除、获取),以及添加修改组件}

    一.创建游戏对象 游戏对象分三种:(1) 将物体模型等资源由Project工程面板拖拽到Hierarchy层次面板中 (2) 由GameObject菜单创建Unity自带的游戏对象,如Cube.Cam ...