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 ...
随机推荐
- Luogu P2426 【删数】
状态定义: 一眼区间$DP$,从左右两边删不好定义状态,不如定义$dp[i][j]$表示$[i,j]$未删的最大值,转移就很自然了 转移: 从左边删$dp[i][j]=max(dp[i][j],dp[ ...
- pytest四:fixture_yield 实现 teardown
既然有 setup 那就有 teardown,fixture 里面的 teardown 用 yield 来唤醒 teardown的执行 在所有用例执行完后执行:yield import pytest ...
- 【C++ Primer 第10章】 1.概述(算法总结)
泛型算法 find(vec.beign(), vec.end(), val) //返回指向第一个给定值的元素的迭代器 count(vec.bengin(), vec.end(), val) //返回给 ...
- Oracle回收站的清理方法
http://blog.itpub.net/18841027/viewspace-1057765/
- SpringBatch 错误积累
1.如果nextStep在该JOB中还没有配置,也就是说nextStep还不存在的情况下,就会报错 <end on="EIXT WITH IMBALANCE" /> & ...
- Git强制更新本地库和冲突解决
1.You have not concluded your merge. (MERGE_HEAD exists) 本地有修改和提交,如何强制用远程的库更新.出现这种情况一般是git本地有commit, ...
- Einbahnstrasse HDU2923
基础2923题 处理输入很麻烦 有可能一个城市有多辆破车要拖 应该严谨一点的 考虑所有情况 #include<bits/stdc++.h> using namespace std; ] ...
- 021 RDD的依赖关系,以及造成的stage的划分
一:RDD的依赖关系 1.在代码中观察 val data = Array(1, 2, 3, 4, 5) val distData = sc.parallelize(data) val resultRD ...
- 014 在Spark中完成PV与UV的计算,重在源代码
1.代码 object LogPVAndUV{ def main(args:Array[String]):Unit={ val conf=new SparkConf() .setMaster(&quo ...
- 《Android进阶之光》--RxJava结合Retrofit访问网络
1)配置 dependencies{ ... compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' co ...