| 
                           
                            | 
								
										
                                    | 编辑推荐: |  
										
                                    | 本文来自csdn,主要讲解了简单易懂的概念,环境搭建,原理,使用等。 |  |  
                            先上图(个人整理): 
 讲概念(个人理解): 
                            SVN:全称Subversion,是一种集中式管理的版本控制工具,分为服务器(VisualSVN)和客户端(TortoiseSVN或SVN插件),客户端每次完成或修改代码需要联网提交到服务端(即版本库Repository)进行存储,冲突主要源于时效性,操作重点在于先更新再提交。 
                            Git:是一种分布式管理的版本控制工具,分为远程版本库(如Github)和本地版本库(.git节点),每个节点都是自己服务器兼客户端(git没有服务器和客户端的说法),完成或修改代码时直接提交到本地版本库节点,无需联网;只有推送和克隆版本库Repository时需要联网和远程版本库进行ssh对接。 
                            每个.git节点的工作机制是:从远程获取或创建工作区(此时为相对主分支master), 经过代码修改更新后(此时为dev分支)add到暂存区,然后commit到分支(即branch)进行管理,再推送到远程库,此过程中会对比master和dev两种分支是否冲突,如果冲突会通过head指针进行分支的合并(合并后为新的相对主分支master),然后进行ssh对接将合并后的本地版本库推送到远程库。 
                            Github:是储存版本库Repository的工具以及一个SSH服务器,提供代码管理服务。Github上的代码是public的,private的收费。 
                            SSH:一种远程登陆和控制主机进行指令操作的手段,提供了公钥和私钥(不需要提供主机管理员帐户和密码进行连接)避免了直接使用密码输入登陆的不安全性和密码泄露问题,分为服务器(如Copssh)和客户端(putty),其公钥( 
                            id_rsa.pub)加密,私钥( id_rsa)解密。 
                            软件介绍(个人推荐): 
                            Copssh:用于搭建ssh服务器的工具,常用于搭建公司内部Git的ssh本地服务器(需要复制Git部分文件); 
                            VisualSVN:用于搭建svn服务器的工具,主要功能为用户版本控制和版本库存储; 
                            TortoiseSVN : 封装了SVN客户端核心并进行优化后的SVN客户端工具,作用等价于SVN插件,但细节方面做得美观和优化。 
                            Git : 为git的核心工具,其window版本又称为msysgit,默认使用ssh进行远程推送(即含ssh客户端),等同git插件作用但功能更强大。 
                            TortoiseGit:依赖于Git才能使用的工具(必须安装Git),对Git进行了封装和优化、美化(即“包装壳”),并集成了ssh客户端putty工具的功能,没有完全不影响Git的使用。 SVN和Git的环境搭建: 
                            (1)SVN的使用 
                            SVN的服务器搭建: 
 
 
                            SVN的客户端搭建: 
                            安装省略,使用步骤: 
                            a、任意位置右击SVN Checkout检出得到版本库和工作区间(含有.svn文件夹的demo1) 
                             
                            b. 更新项目demo1完成后,在.svn文件夹所在的项目目录/demo1先右击选择SVN Update操作,然后右击选择SVN 
                            Commit操作。 
 
                            Eclipse中的SVN插件的使用(打开SVN资源库窗口---右击SVN检出---代码编辑、更新---SVN更新---SVN提交) 
 (2)Git的使用 
                            1、Github的使用 
 
 
 
 
 
 
                            2、Git工具的下载安装 
 
 3、Git的常用命令: 
                            (1)配置用户信息及相应的ssh密钥(以用户admin为例) 
                            告诉ssh服务器(如github)你是谁?(随意填,对应本地登录的计算机用户) 
                            git config --global user.name "admin" 
                            git config --global user.email "admin@gmail.com" 
                            核心:生成用户对应的ssh密钥(用户名-邮箱-ssh密钥三者一一对应);默认地址为C:\Users\计算机用户\.ssh目录下,其中id_rsa是私钥,id_rsa.pub是公钥,复制公钥内容提供给ssh服务器(如github)后就能使用ssh远程对接功能。 
                            ssh-keygen -t rsa -C "admin@gmail.com" 
                            此处还要设置ssh远程连接密码 Enter Passphrase ... 
 (2)Git基本使用流程 
 (3)Git分支branch: 
                            分支名自定义,如常用的origin;主分支master和其他分支dev只是个相对概念,可以认为master是存放某一个分支的特定容器(master容器规则:新分支会自动替换旧分支);遇到冲突时需要进行分支合并,否则无法推送到远程库。 
                            git branch dev1 创建dev1分支 
                            git checkout master 切换到主分支(相对概念,代指某个特定分支) 
                            git branch 查看当前分支 
                            git merge dev1 将指定分支dev1合并到当前分支 
                            git branch -d dev1 删除dev1分支 
                            (4)Git其他命令:如版本回退、标签管理、bug分支管理(参考度娘) 
                            git status 查看仓库状态 
                            git log --pretty=oneline 查看历史纪录 
                            git reset --hard 2e655fdf(提交版本号commit id) 回退到某个版本 
                            git clone git@github.com:test/testgit.git 克隆远程库 
                            4、Eclipse中Git插件的使用 
 
 5、Github静态页面展示  
                            (1)在Github上创建一个版本库,格式按 "zyp168:\zyp168.github.io.git"为例子 
                            (zyp168为本人Github帐户名称)。 
                            (2)编写一个静态HTML5项目(或下载一个模板),要求有index.html主页(放在项目第一目录下),并推送到Github上 
                            (3)在Github主题管理上添加主题,然后发现自动生成一个_config.yml文件,可进行相关配置。 
                            (4)网址访问"zyp168.github.io",即可展示你的index.html主页 
                            (5)有自主域名的可以添加CNAME文件,将访问网址改为你的自定义网址。(如:本人改为readme.zyp168.cn作为我的网上简历) 
                            详细可参考:  
                            https://github.com/zyp168/zyp168.github.io 
                            克隆地址: 
                            git@github.com:zyp168/zyp168.github.io.git 
                            最终效果图: 
 
                            6、Github搭建个人静态博客 
                            用到 node.js和hexo博客框架,详细见度娘,由于csdn和博客园足够满足需要,除了练手熟悉外,个人觉得没有实用价值! 
                            7、搭建本地Git服务端(Copssh搭建SSH服务器)  
                            Copssh + Git + TortoiseGit [可选项] 
                            (1)Copssh安装和使用(收费,百度有Copssh4.1.0的破解版) 
                            强烈建议使用兼容模式和管理员模式进行安装和使用,并关闭防火墙。 
 
 
                            安装后俄目录布局 
 
 
 (2)至此, ”ssh服务器” 搭建完毕,但要使其成为”git的ssh服务器“,须进行以下操作(修改后重启服务) 
                            安装完成后还有两个操作: 
                            1、将Git安装目录D:\Program Files\Git\mingw64\libexec\git-core文件夹下的git-upload-pack.exe、git.exe、git-receive-pack.exe和git-upload-archive.exe这4个文件复制到SSH的安装路径D:\ICW\bin下。 
                            2、将Git安装目录D:\Program Files\Git\mingw64\bin\libiconv-2.dll复制到D:\ICW\bin下。 
                            (3)仿照git配置用户信息及相应的ssh密钥,然后将公钥提供给Github的过程(此处提供给Copssh) 新建计算机用户test------将test添加到Copssh-------注销后登录test------使用git命令生成test用户的密钥(该过程参见git配置用户信息及相应的ssh密钥)------将生成的密钥(C:\Users\test\.ssh文件夹)中的公钥提供给Copssh 提供的过程如下: 
                            a、找到D:\Program Files (x86)\ICW\home\test\.ssh创建文件authorized_keys(注意没有扩展名,Copssh默认识别的名称,勿重命名) 
                            b、将公钥内容复制到你创建的文件authorized_keys中 
                            c、重启Copssh服务发现,keys...中出现了可用的公钥  
 如果重启失败关闭,并提示运行buzhengque,则使用兼容模式重新启动即可! 由上过程可知Copssh和Github相比,只提供了git的ssh服务器功能,并没有提供git的版本库存储功能,毕竟分布式的概念在于每个节点都有存储备份,因此该公共远程版本库缺少一份备份并不影响。 注意:上述创建的Copssh的管理员Git实际就是你安装Copssh时登陆的计算机账户,因此注销后发现并没有Git用户登陆的图标。 
                            所以为了防止混淆,我在上述流程中新建了一个test计算机用户进行模拟,如果要使用Copssh管理员(即Git用户),只需要用你安装Copssh时的那个计算机用户,使用git命令生成的公钥提供给D:\Program 
                            Files (x86)\ICW\home\Git \.ssh即可。 
                            (4)测试,修改和推送到远程库 
                            此时的远程库可以是Copssh中的任何一台计算机用户的主机(分布式),建议使用安装Copssh的那台主机充当公共版本库的存储地点 
                            (作为Github)。 
 我知道网上Copssh的搭建博客很多,但我希望大家:知其然,知其所以然,希望本篇文章能给大家带来帮助! |