svn与git操作对比 (未来有空做一个 svn与git实战对比 )
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实战对比 )的更多相关文章
- 基于ABP做一个简单的系统——实战篇:1.项目准备
现阶段需要做一个小项目,体量很小,业务功能比较简单,就想到用最熟悉的.net来做,更何况现在.net core已经跨平台,也可以在linux服务器上部署.所以决定用.net core 3.1+mysq ...
- 用nodejs做一个svn密码修改页面
linux上配置好svn服务后,管理修改密码还得去手工修改passwd这个文件,略麻烦,其实网上应该有配套的web管理修改界面程序.但我想自己用nodejs写一个,因为用node不用配置复杂的服务器. ...
- 基于ABP做一个简单的系统——实战篇:2.代码生成器
上一篇正说着呢,代码生成器就来了. 1.适用于ABP官网的Startup Template V3.x的包含了登录.用户等页面的MPA应用模板2.当前view仅支持文本框生成,远期规划根据字段类型生成不 ...
- 基于ABP做一个简单的系统——实战篇:4.基于富文本编辑器,Razor模板引擎生成内容并导出Word 填坑记录
起因 需求是这样的,有一种协议需要生成,协议的模板是可配置的,在生成过程中,模板中的内容可以根据约定的标记进行替换(就像mvc的razor模板一样).生成后的内容还需要导出成word或pdf. 常见的 ...
- git 操作详情
Git 教程 1.Git 是一个开源的分布式版本控制系统 2.Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开源版本控制软件 3.Git 与常用的版本控制工具 ...
- git操作github
转自http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html 怕找不到~ 本文在我之前的那篇<git/github学习笔记>的 ...
- 常用 Git 操作
最新博客链接:https://feiffy.cc/Git 日常用到的GIT的一些操作,记下来,以备参考. 删除文件 git rm filename git commit -m "remove ...
- Git操作(及操作github)
一.git操作: 1.创建一个项目: 2.打开项目,在项目目录下右键单击--打开 git bash: 3.初始化项目仓库 创建项目仓库 命令: git init ; git status 查看文 ...
- AS中Git操作和Git工作流
查阅并学习安卓中如何使用Git,并扩展学了下Gitflow工作流程,以下是我觉得有用,系统,详细的相关文章. AS中Git操作系列 https://www.jianshu.com/p/0cc226ee ...
随机推荐
- 如何将Request对象中的参数列表打印出来
Map<String, String[]> map = request.getParameterMap(); Set<Map.Entry<String, String[]> ...
- 移位操作符 << >> >>>
按位操作符只可用于int类型,其它类型都会转化位int类型在操作,并且只有数值右端的低5位才右用(因为2^5=32) << 左移位操作符,低位补零 >> 右移位操作符,有符 ...
- Codeforces 407B Long Path(好题 DP+思维)
题目链接:http://codeforces.com/problemset/problem/407/B 题目大意:一共n+1个房间,一个人从1走到n+1,每次经过房间都会留下一个标记,每个房间有两扇门 ...
- 基于TCPCopy的仿真压测方案
一.tcpcopy工具介绍 tcpcopy 是一个分布式在线压力测试工具,可以将线上流量拷贝到测试机器,实时的模拟线上环境,达到在程序不上线的情况下实时承担线上流量的效果,尽早发现 bug,增加上线信 ...
- xxx is not in sudoers file 解决(转)
解决方案:首需要切换到root身份$su -(注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,用& ...
- 08 IO库
#include<iostream> #include<vector> #include<string> #include<fstream> using ...
- 结构型模式之Adapter模式
适配器模式把一个类的接口变换成客户端所期待的另一种接口. 在JDK中的体现 把一个接口或类变成另外一种. java.util.Arrays#asList()javax.swing.JTable(Tab ...
- poj1743
题解: 后缀数组+二分答案 首先会发现这题实质上就是求最长不重复的相同子段 首先二分答案长度,之后对每一段信息进行维护 一段信息即保证这一段的sa值都大于mid即可 然后找到这段中后缀位置最大和最小处 ...
- windows下的python环境搭建(python2和python3不兼容,python2用的多)
Windows平台下搭建python开发环境 以下为在 Window 平台上安装 Python 的简单步骤: 打开WEB浏览器访问http://www.python.org/download/ 在下载 ...
- Cpu 常见系列以及型号
Intel旗下 赛扬(Celeron)——桌面低端 奔腾(Pentium)—— 桌面中端 酷睿 (Core)——桌面高端 至强(Xeon)——服务器中端 安腾(Itanium)——服务器高端 凌动(A ...