SVN、Git的使用

在公司进行项目开发,使用SVN,Git是必须的,所以今天详细总结一下平时使用Git和SVN的基本使用和一下技巧,供大家参考学习。如有错误,请大家指正!


一 、 SVN

svn基本操作:[插入]


  

服务器端和客户端的示意图:[插入]


使用环境

要想利用SVN管理源代码,必须得有2套环境

服务器
用于存储客户端上传的源代码
可以在Windows上安装VisualSVN Server
大部分情况下,公司的开发人员不必亲自搭建SVN服务器

客户端
上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
可以在Mac上使用命令行VersionsCornerstone
开发人员就属于客户端这个角色

SVN客户端命令

svn checkout 下载服务器的代码到本地 (简写svn co
svn commit :将改动的文件提交到服务器(简写svn ci
svn update 更新服务器的代码到本地 (简写svn up
svn add :向本地的版本控制库中添加新文件
svn deletesvn remove :从本地的版本控制库中删除文件(简写svndelsvnrm
svn move:移动文件或者目录或文件更名
svnmkdir创建纳入版本控制下的新目录
svn revert :撤销之前的一切修改
svn merge :将两个版本之间的差异合并到当前文件
svn info :查看文件的详细信息
svndiff :查看不同版本的区别
svnlog :查看日志信息
svn list :列出版本库下的文件和目录列表
svn status :查看文件状态(简写svnst
svn help :获取帮助信息(比如svnhelpci
svn lock :加锁
svn unlock :解锁

SVN项目导出:

将项目检出下载 至本地:

svn checkout URL [PATH] 

svn co URL [PATH];

注意:这里的中括号[]代表可选(可以省略)


示例

svn checkout  https://192.168.1.106/svn/Weibo//Users/user/Documents/workspace

蓝色 代表的是:代码仓库的远程地址
橙色 代表的是:将代码下载到本地的哪个路径
如果省略 橙色 的路径,就下载到命令行当前所在的路径

提交操作:
将改动 过的文件 提交至 服务器
svn  commit    -m " 注释 "  [PATH]
svn  ci    -m" 注释  [PATH]

注意:一定要养成写注释的良好习惯

示例

svn commit  -m “修改了User.m文件” /Users/user/Desktop/workspace/branches/User.m

橙色 代表的是:提交哪个文件到服务器
如果省略 橙色 的路径,就将命令行所在路径中所有改动过的文件提交到服务器


添加操作 :
提交一个新建的文件到服务器,需要 2 个步骤
1、 添加新建的文件到本地的 版本控制 库中: svn  add
2、 提交刚才的添加 操作 到服务器 svn  commit

本地的 版本 控制库 中添加一个新文件
1、 svn  add  PAT H
示例

svn add /Users/user/Desktop/workspace/Weibo/branches/User.m

橙色 代表的是:添加哪个文件到 版本控制 库中

删除
删除服务器上的某个文件,需要做 2 个步骤
1、 将文件从本地的版本控制库中移除: svn  d elete svn remove
2、 提交刚才的删除操作到服务器: svn commit . –m 注释
3、 将文件从本地的版本控制库中移除
svn  delete  PAT H
示例

svn delete /Users/user/Desktop/workspace/Weibo/branches/User.m

橙色 代表的是:将哪个文件从 版本控制 库中移除

更新
将服务器的最新代码更新到本地
svn  update  [ PAT H ]     . 当前目录

示例

svn update /Users/mj/Desktop/workspace/Weibo/branches/User.m

橙色 代表的是:更新哪个文件的内容
如果省略 橙色 的路径,就更新命令行所在路径的所有内容
将文件恢复至某个版本
svn  update  -r  版本号 [ PAT H]

常见问题总结
1、 去到公司的第一天,下载公司的代码到电脑上
svn  checkout

2、 修改了某个早已存在的旧文件,然后提交到服务器
svn  commit  –m 注释

3、 提交一个自己新建的文件到服务器
svn  add  ->  svn  commit

4、 删除一个早已存在的旧文件,然后同步到服务器上
svn  delete -> svn commit
5、 将其他同事提交的新代码更新到自己电脑上
svn  update

6、 不小心写错了 很多东西 ,想 撤销所写的东西 还未把修改提交到服务器
svn  revert      xcode    discard  changes
7、 不小心 删错了文件 ,想 把文件恢复回来 还未把删除提交到服务器
svn  revert   x code    discard  changes

8、 不小心写错了 很多东西 ,想 撤销所写的东西 已经 把修改提交到服务器
svn  update  -r  版本号
9、 不小心 删错了文件 ,想 把文件恢复回来 已经把删除提交到服务器
svn  update  -r  版本号

注意!!

注意

. svn这个隐藏目录记录着非常关键的信息
千万不要手工修改或删除这个  . svn 隐藏目录和里面的文件!否则将会导致本地的工作副本被破坏,无法再进行操作
defaults write com.apple.finder AppleShowAllFiles -bool true

演练步骤 ……
1.项目经理准备初期代码
2.LNJJonathan合力完成V1.0的开发工作
3.为完成后的V1.0建立Tags标签,注意文件夹的层次
4.接收到Bug报告LNJ停止手头工作并备份
5.经理负责建立修订分支,并通知LNJ去解决
6.LNJ从修订分支CheckoutV1.0的版本,并开始修订错误
7.LNJ修订完成后通知经
8.经理确认之后,将修订内容整合到2.0开发主线
9.经理建立V1.1标签
10.LNJ继续开发工作...

使用SVN我们应该
1. 经常更新 :降低冲突的可能性
2. 提交前需在本机测试通过 :降低将问题代码传到版本库
3. 提交时一定写备注 ( 注释 ) :方便其他员工查看和自己以后回顾
4. 对于不需要提交的文件不要提交到版本库

提示
1. 每次修改之前最好先更新
2. 每天下班前提交当天运行通过的代码
3. 每天上班第一件事情更新前一天的代码

二 、 Git

简介:
git 是一款开源的 分布式 版本控制工具
在世界上所有的分布式版本控制工具中, git 是最快、最简单、最流行的

git的起源
作者是 Linux 之父: Linus Benedict Torvalds
当初开发 git 仅仅是为了辅助 Linux 内核的开发(管理源代码)

git的现状
在国外已经非常普及,国内并未普及(在慢慢普及)
越来越多的开源项目已经转移到 git

gitSVN的简单对比
速度
在很多情况下,git的速度远远比SVN

结构
SVN是集中式管理,git是分布式管理

其他
SVN使用分支比较笨拙,git可以轻松拥有无限个分支
SVN必须联网才能正常工作,git支持本地版本控制工作
旧版本的SVN会在每一个目录置放一个.svngit只会在根目录拥有一个.git
git的工作流程

SVN一样,你可以通过命令行敲指令或者图形界面客户端使用git
Mac上,比较好用的git图形界面客户端有
SourceTree

GitHub
下载地址:https://mac.github.com
不过它是专门为GitHub网站而设计的

git常用指令
git helpgit指令帮助手册
查看其他指令的做法:githelp 其他指令

git configgit的配置信息相关修改的是.git/config文件
配置用户名:gitconfig“user.name”用户名(用于跟踪修改记录)
配置邮箱:gitconfig“user.email”邮箱(用于多人开发间的沟通)
查看配置信息:gitconfig–l
编辑配置信息:gitconfig–e(用vim编辑,:wq是退出vim编辑器)
设置指令的别名:gitconfig alias.别名原指令名称
设置带参数指令的别名:gitconfig alias.别名原指令名称 参数
将此设置应用到整个系统中:gitconfig ––gloabal

git  status :查文件的状态
查看某个文件的状态: git  status  文件名
查看当前路径所有文件的状态: git  status

git  log:查看文件的修改日志
查看某个文件的修改日志: git  log  文件名
查看当前路径所有文件的修改日志: git  log
用一行的方式查看简单的日志信息: git  log ––pretty=oneline
查看最近的N次修改: git  log –N(N是一个整数)

git  diff:查看文件最新改动的地方
查看某个文件的最新改动的地方: git  diff  文件名
查看当前路径所有文件最新改动的地方: git  diff

git  init :初始化一个 本地 仓库, 生成一个 .git 目录 ,用于维护版本信息
在当前路径初始化仓库: git  init
在其他路径初始化仓库: git  init  仓库路径

git  add :将 工作区 的文件保存到 暂缓区
保存某个文件到暂缓区: git  add  文件名
保存当前路径的所有文件到暂缓区: git  add . (注意,最后是一个点  .

git  commit :将 暂缓区 的文件提交到 当前分支
提交某个文件到分支: git commit -m ” 注释 文件名
保存当前路径的所有文件到分支: git commit -m ” 注释 ” 

git  reset :版本回退(建议 加上 ––hard 参数, git 支持无限次后悔)
回退到上一个版本: git reset ––hard HEAD^
回退到上上一个版本: git reset ––hard HEAD^^
回退到上 N 个版本: git reset ––hard HEAD~N N 是一个整数)
回退到任意一个版本: git reset ––hard  版本号 (版本号用 7 位即可)

git  reflog :查看指令使用记录(能够查看所有的版本号)

git  rm :删除文件(删完之后要进行 commit 操作,才能同步到版本库)

git  clone :下载远程仓库到本地
下载远程仓库到当前路径: git  clone  仓库的 URL
下载远程仓库到特定路径: git  clone  仓库的 URL  存放仓库的路径

git  pull :下载远程仓库的最新信息到本地仓库

git  push :将本地的仓库信息推送到远程仓库


工作原理
如果想了解 git 的工作原理,有几个核心概念必须知道
工作区( Working Directory :仓库文件夹里除 .git 目录 以外的内容

版本库( Repository .git 目录 ,用于存储记录版本信息
暂缓区( stage
分支( master ): git 自动创建的第一个分支
HEAD 指针:用于指向当前分支

git  add git  commit 的原理
git  add  :把文件修改添加到暂存区
git  commit :把暂存区的所有内容提交到当前分支
[插入]

搭建GitHub远程仓库  配置SSH Key
1、注册一个 GitHub 帐号: https://github.com
2、 打开“ Account Settings
3、 点击“ SSH keys
4、 配置 Mac SSH Key 的公钥(用于限制提交)
5、 Mac 上生成 SSH Key (在终端输入下面指令)
cd ~/.ssh
ssh-keygen -t rsa -C"你的邮箱地址”
6、 然后一直敲回车

7、 然后就会在~/.ssh 目录下生成 SSK Key 秘钥对
id_rsa  :私钥,不可泄露
id_rsa.pub  :公钥,可以公开( 将这个文件的内容粘贴到 GitHub
8、 利用 cat 指令可以查看文件的内容
cat id_rsa.pub

9、然后创建自己的仓库,利用上述的操作命令,就可以进行多人团队开发了!


SVN与Git的基本操作就说这么多了!大家如果有问题,欢迎提问!

猜你喜欢

转载自blog.csdn.net/smxjant/article/details/80909929