代码管理之SVN服务器及Git的创建与使用
---恢复内容开始---
SVN和Git的都是用于项目配置项管理的工具,区别很大,各有千秋。但他们之间的区别并非今天我要谈论的重点,因为这些有很多成熟的文章博客介绍。所以今天我主要是介绍一些SVN和Git的创建以及使用方法。其实我也是自己在这个问题上吃了很大的亏之后,才研究整理出这篇文章的,希望能够帮到一些受困的猿友。
(一)首先介绍的是Mac平台上SVN服务器的搭建:
1、可以再你自定义的位置上创建一个文件,例如在桌面上新建一个SVNTest文件夹
![](http://upload-images.jianshu.io/upload_images/1616138-03c29ff8369fbd67.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2、打开终端,并输入 $ svnadmin create +文件路径(如红线所示)
![](http://upload-images.jianshu.io/upload_images/1616138-d4b7bad5d065a144.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时如果出现这种问题:
![](http://upload-images.jianshu.io/upload_images/1616138-aa8791d8801ab2e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
那就需要你进行安装一下:Command Line Tools工具,使终端识别svn命令;早期Xcode可以直接安装:打开xcode偏好设置(comand+,)-->"Download" -->Components:下载Command Line Tools,直接然后搞定,但是新版本的Xcode已经没有这项设置了,所以你可以在终端输入:
xcode-select --install
![](http://upload-images.jianshu.io/upload_images/1616138-86206eac318c3dce.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
出现如下提示,进行安装就可以了。然后重新在终端上输入
$ svnadmin create +文件路径,成功之后,新建的文件夹里会多出一些文件,如下图
![](http://upload-images.jianshu.io/upload_images/1616138-4d6a7659b3781b5c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3、分别打开红框中的文件,进行位置权限
首先打开svnserve.conf文件,去除下图蓝框中命令前的 #(空格):
![](http://upload-images.jianshu.io/upload_images/1616138-33089369a1127d87.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
修改之后为:
![](http://upload-images.jianshu.io/upload_images/1616138-83691b1bc5252e7c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问;
auth-access = write 使授权用户有写权限;
password-db = passwd指明密码文件路径;
uthz-db = authz 访问控制文件。
然后在修改 passed 文件:添加 账号密码:(添加前)
![](http://upload-images.jianshu.io/upload_images/1616138-d53ae985b567cfd6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
添加后:
![](http://upload-images.jianshu.io/upload_images/1616138-300c3de3f13f9514.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
即在 [users]下面添加 用户名 = 密码,可以是一个,也可以是多个;
最后需要打开 authz 设置权限:
![](http://upload-images.jianshu.io/upload_images/1616138-626737ba8def4863.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在 [groups]下添加之前配置的账号到组中
![](http://upload-images.jianshu.io/upload_images/1616138-ae986ca1b221ba7c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
即 组名 = 用户名1,用户名2 // 表示可以添加一个或多个用户名
[/] //表示svn服务器中的所有资源库
@Manager = rw // Manager这个组中的所有用户对所有资源库都有读写(rw)权限,组名前面要用@ ;但如果是用户名,不用加@,比如 test 这个用户有读写权限
4、最后就可以启动SVN服务器了,在终端输入 svnserve -d -r 文件名,
![](http://upload-images.jianshu.io/upload_images/1616138-59e2da6719e4d9fc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果没有任何提示,这证明启动成功了,
5、上传本工程代码:
![](http://upload-images.jianshu.io/upload_images/1616138-87f01cbf4d8d8702.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
/Users/Frank/Desktop/Demo/ 表示你需要上传的工程文件路径
svn://localhost/SVNTest 表示SVN地址,其中localhost表示本地svn地址,如果是远程svn,则localhost需要替换成对应的svn服务器ip地址,SVNTest表示svn服务器的名字
--username=test --password=test -m"初始化" 表示你之前配置的账号密码,以及填写的操作信息,成功之后如图所示:
![](http://upload-images.jianshu.io/upload_images/1616138-1284fdc39ba5641b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6、从服务器端下载代码到客户端本地
在终端中输入 $ svn checkout svn://localhost/SVNTest --username=test --password=test /Users/Frank/Desktop/DownLoadDemo
表示从将svn上的工程下载到桌面上的DownLoadDemo文件夹中
7、当需要关闭svn的时候,可以通过终端命令:sudo killall svnserve 进行关闭,也可以在进程中关闭
只有svn其他的语法命令,可以通过终端命令 svn help 进行查看
(二)以上便是SVN服务器在Mac上的创建过程,下面要说一下Git的创建使用方式:
Git管理代码是比较方便的,只需要你在社区创建自己的代码仓库,然后关联到本地仓库,就可以进行使用了,那么下面就具体说一种Git的代码托管平台Coding.net https://coding.net/user
1、首先我们需要拥有自己的Coding.net的账号,然后在Coding.net上创建一个项目
![](http://upload-images.jianshu.io/upload_images/1616138-477c4f942ec2ff5e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
点击创建项目之后,就可以在自己的 项目 页面中查看你说创建的新项目
![](http://upload-images.jianshu.io/upload_images/1616138-447fa2b1c4423838.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
那么为什么我们需要在Coding创库上先创建这个项目,因为当我们创建这个项目的时候,创库会自动为我们的这个项目分配一个访问地址,这个在我们关联到本地时是不可缺少的
![](http://upload-images.jianshu.io/upload_images/1616138-11532272aae11a3f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2、开始进行本地关联,在本地创建一个文件夹,作为本地仓库,例如在桌面上创建一个LocalStore
![](http://upload-images.jianshu.io/upload_images/1616138-0f6def27a72f4d6f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3、打开Mac终端,键入 $ cd +本地仓库路径 ,对本地仓库进行操作,如图成功进入本地仓库
![](http://upload-images.jianshu.io/upload_images/1616138-f890ce2586ae9760.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4、执行终端命令:git init //对本地仓库进行初始化
![](http://upload-images.jianshu.io/upload_images/1616138-ff22d63131e08939.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时已经初始化成功,系统化为本地仓库创建一个分支 master,但是打开本地仓库却看不到这个分支,因为这个分支是隐藏文件,不需要你去手动修改
5、执行终端命令:git remote add origin +远程仓库的访问地址
![](http://upload-images.jianshu.io/upload_images/1616138-a2d1747b1ad061aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
例如:用来将本地仓库和Coding.net上的远程仓库进行关联起来
![](http://upload-images.jianshu.io/upload_images/1616138-6c5eed7075b9fe43.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6、此时将你想要上传到仓库的项目的工程文件直接拖入本地仓库
![](http://upload-images.jianshu.io/upload_images/1616138-121051027f653d64.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
7、终端命令:git status // 进行查看仓库状态,红色的提示就是改动过的文件
![](http://upload-images.jianshu.io/upload_images/1616138-729d62d8e40c355a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
8、终端命令:git add -A // 将所有改动过的文件添加到缓存中,并非直接上传(如果只提交某一个文件时,可以执行 git add +文件名)
9、终端命令:git commit -a -m"添加备注信息" // 提交到仓库,-a 表示提交缓存中的所有文件,-m" " 添加的一些备注信息 成功之后如下图所示:
![](http://upload-images.jianshu.io/upload_images/1616138-84d4215a98583257.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
10、终端命令:git pull origin master // 先从远程仓库上更新代码文件
此时会进入 vim 编辑,可以按 esc --> : --> wq 进行保存并退出
11、终端命令:git push -u origin master // 将本地仓库的文件代码同步到远程Coding仓库,第一次同步时,需要添加 -u ,实现远程仓库与本地仓库分支进行关联 ,以后再同步时可以直接执行 git push origin master
12、提示输入 Coding.net 的账号密码
注意:如果没有执行 10 ,不先更新代码直接同步的话,会出现报错
![](http://upload-images.jianshu.io/upload_images/1616138-9e8e4030a1acf8c8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这是提示你需要先进行更新,才能同步,然后你执行 10 之后,再键入 git push origin master 就可以了,成功同步之后为
![](http://upload-images.jianshu.io/upload_images/1616138-ad093e5068b6e780.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时可以查看你的Coding仓库查看提交记录
![](http://upload-images.jianshu.io/upload_images/1616138-2b76512e88ba83b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
至于git的其他终端操作命令,可以通过 git help 进行查看
![](http://upload-images.jianshu.io/upload_images/1616138-01b305056411a136.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
以上就是Mac上创建SVN服务器和关联Git管理仓库的方法,代码管理的平台工具、方法都有很多,无论哪种方法,只要自己用起来方便就是最好的方法
---恢复内容结束---
SVN和Git的都是用于项目配置项管理的工具,区别很大,各有千秋。但他们之间的区别并非今天我要谈论的重点,因为这些有很多成熟的文章博客介绍。所以今天我主要是介绍一些SVN和Git的创建以及使用方法。其实我也是自己在这个问题上吃了很大的亏之后,才研究整理出这篇文章的,希望能够帮到一些受困的猿友。
(一)首先介绍的是Mac平台上SVN服务器的搭建:
1、可以再你自定义的位置上创建一个文件,例如在桌面上新建一个SVNTest文件夹
![](http://upload-images.jianshu.io/upload_images/1616138-03c29ff8369fbd67.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2、打开终端,并输入 $ svnadmin create +文件路径(如红线所示)
![](http://upload-images.jianshu.io/upload_images/1616138-d4b7bad5d065a144.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时如果出现这种问题:
![](http://upload-images.jianshu.io/upload_images/1616138-aa8791d8801ab2e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
那就需要你进行安装一下:Command Line Tools工具,使终端识别svn命令;早期Xcode可以直接安装:打开xcode偏好设置(comand+,)-->"Download" -->Components:下载Command Line Tools,直接然后搞定,但是新版本的Xcode已经没有这项设置了,所以你可以在终端输入:
xcode-select --install
![](http://upload-images.jianshu.io/upload_images/1616138-86206eac318c3dce.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
出现如下提示,进行安装就可以了。然后重新在终端上输入
$ svnadmin create +文件路径,成功之后,新建的文件夹里会多出一些文件,如下图
![](http://upload-images.jianshu.io/upload_images/1616138-4d6a7659b3781b5c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3、分别打开红框中的文件,进行位置权限
首先打开svnserve.conf文件,去除下图蓝框中命令前的 #(空格):
![](http://upload-images.jianshu.io/upload_images/1616138-33089369a1127d87.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
修改之后为:
![](http://upload-images.jianshu.io/upload_images/1616138-83691b1bc5252e7c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问;
auth-access = write 使授权用户有写权限;
password-db = passwd指明密码文件路径;
uthz-db = authz 访问控制文件。
然后在修改 passed 文件:添加 账号密码:(添加前)
![](http://upload-images.jianshu.io/upload_images/1616138-d53ae985b567cfd6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
添加后:
![](http://upload-images.jianshu.io/upload_images/1616138-300c3de3f13f9514.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
即在 [users]下面添加 用户名 = 密码,可以是一个,也可以是多个;
最后需要打开 authz 设置权限:
![](http://upload-images.jianshu.io/upload_images/1616138-626737ba8def4863.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在 [groups]下添加之前配置的账号到组中
![](http://upload-images.jianshu.io/upload_images/1616138-ae986ca1b221ba7c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
即 组名 = 用户名1,用户名2 // 表示可以添加一个或多个用户名
[/] //表示svn服务器中的所有资源库
@Manager = rw // Manager这个组中的所有用户对所有资源库都有读写(rw)权限,组名前面要用@ ;但如果是用户名,不用加@,比如 test 这个用户有读写权限
4、最后就可以启动SVN服务器了,在终端输入 svnserve -d -r 文件名,
![](http://upload-images.jianshu.io/upload_images/1616138-59e2da6719e4d9fc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果没有任何提示,这证明启动成功了,
5、上传本工程代码:
![](http://upload-images.jianshu.io/upload_images/1616138-87f01cbf4d8d8702.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
/Users/Frank/Desktop/Demo/ 表示你需要上传的工程文件路径
svn://localhost/SVNTest 表示SVN地址,其中localhost表示本地svn地址,如果是远程svn,则localhost需要替换成对应的svn服务器ip地址,SVNTest表示svn服务器的名字
--username=test --password=test -m"初始化" 表示你之前配置的账号密码,以及填写的操作信息,成功之后如图所示:
![](http://upload-images.jianshu.io/upload_images/1616138-1284fdc39ba5641b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6、从服务器端下载代码到客户端本地
在终端中输入 $ svn checkout svn://localhost/SVNTest --username=test --password=test /Users/Frank/Desktop/DownLoadDemo
表示从将svn上的工程下载到桌面上的DownLoadDemo文件夹中
7、当需要关闭svn的时候,可以通过终端命令:sudo killall svnserve 进行关闭,也可以在进程中关闭
只有svn其他的语法命令,可以通过终端命令 svn help 进行查看
(二)以上便是SVN服务器在Mac上的创建过程,下面要说一下Git的创建使用方式:
Git管理代码是比较方便的,只需要你在社区创建自己的代码仓库,然后关联到本地仓库,就可以进行使用了,那么下面就具体说一种Git的代码托管平台Coding.net https://coding.net/user
1、首先我们需要拥有自己的Coding.net的账号,然后在Coding.net上创建一个项目
![](http://upload-images.jianshu.io/upload_images/1616138-477c4f942ec2ff5e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
点击创建项目之后,就可以在自己的 项目 页面中查看你说创建的新项目
![](http://upload-images.jianshu.io/upload_images/1616138-447fa2b1c4423838.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
那么为什么我们需要在Coding创库上先创建这个项目,因为当我们创建这个项目的时候,创库会自动为我们的这个项目分配一个访问地址,这个在我们关联到本地时是不可缺少的
![](http://upload-images.jianshu.io/upload_images/1616138-11532272aae11a3f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2、开始进行本地关联,在本地创建一个文件夹,作为本地仓库,例如在桌面上创建一个LocalStore
![](http://upload-images.jianshu.io/upload_images/1616138-0f6def27a72f4d6f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3、打开Mac终端,键入 $ cd +本地仓库路径 ,对本地仓库进行操作,如图成功进入本地仓库
![](http://upload-images.jianshu.io/upload_images/1616138-f890ce2586ae9760.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4、执行终端命令:git init //对本地仓库进行初始化
![](http://upload-images.jianshu.io/upload_images/1616138-ff22d63131e08939.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时已经初始化成功,系统化为本地仓库创建一个分支 master,但是打开本地仓库却看不到这个分支,因为这个分支是隐藏文件,不需要你去手动修改
5、执行终端命令:git remote add origin +远程仓库的访问地址
![](http://upload-images.jianshu.io/upload_images/1616138-a2d1747b1ad061aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
例如:用来将本地仓库和Coding.net上的远程仓库进行关联起来
![](http://upload-images.jianshu.io/upload_images/1616138-6c5eed7075b9fe43.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6、此时将你想要上传到仓库的项目的工程文件直接拖入本地仓库
![](http://upload-images.jianshu.io/upload_images/1616138-121051027f653d64.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
7、终端命令:git status // 进行查看仓库状态,红色的提示就是改动过的文件
![](http://upload-images.jianshu.io/upload_images/1616138-729d62d8e40c355a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
8、终端命令:git add -A // 将所有改动过的文件添加到缓存中,并非直接上传(如果只提交某一个文件时,可以执行 git add +文件名)
9、终端命令:git commit -a -m"添加备注信息" // 提交到仓库,-a 表示提交缓存中的所有文件,-m" " 添加的一些备注信息 成功之后如下图所示:
![](http://upload-images.jianshu.io/upload_images/1616138-84d4215a98583257.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
10、终端命令:git pull origin master // 先从远程仓库上更新代码文件
此时会进入 vim 编辑,可以按 esc --> : --> wq 进行保存并退出
11、终端命令:git push -u origin master // 将本地仓库的文件代码同步到远程Coding仓库,第一次同步时,需要添加 -u ,实现远程仓库与本地仓库分支进行关联 ,以后再同步时可以直接执行 git push origin master
12、提示输入 Coding.net 的账号密码
注意:如果没有执行 10 ,不先更新代码直接同步的话,会出现报错
![](http://upload-images.jianshu.io/upload_images/1616138-9e8e4030a1acf8c8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这是提示你需要先进行更新,才能同步,然后你执行 10 之后,再键入 git push origin master 就可以了,成功同步之后为
![](http://upload-images.jianshu.io/upload_images/1616138-ad093e5068b6e780.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时可以查看你的Coding仓库查看提交记录
![](http://upload-images.jianshu.io/upload_images/1616138-2b76512e88ba83b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
至于git的其他终端操作命令,可以通过 git help 进行查看
![](http://upload-images.jianshu.io/upload_images/1616138-01b305056411a136.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
以上就是Mac上创建SVN服务器和关联Git管理仓库的方法,代码管理的平台工具、方法都有很多,无论哪种方法,只要自己用起来方便就是最好的方法