github使用教程

来源:互联网 发布:图片制作拼图软件 编辑:程序博客网 时间:2024/06/05 19:07
1.什么叫git?什么叫github?l两者之间的差别?
     1.1.根据自己百度和之前使用svn,vss的经验的描述:
             git:和vss,svn一样都是一个分布式的版本控制系统,通过链接和相应的权限认证之后,将自己本地的代码push到远程的仓库中,或者将远程的项目版本download到本地。在多人协作开发项目中起到至关重要的作用。
            github:就是一个管理代码的平台,每个人拥有自己的一个账号,可以上传自己的代码进行版本管理。
     1.2.深入学习之后结果:
2.github的使用:
      2.1.什么是git:是一款软件,用来进行版本控制。是一套命令行工具。
          什么是github:一个网战,开源项目的托管平台。不管你开发什么项目都有可能在github上找到现成的项目代码进行参考。github提供可视化界面。
          github网战+github客户端进行操作和使用git版本控制的各种功能。本地编辑和调试非常方便,我们如果使用git的话,需要使用命令行进行版本管理,我们也可以使用本地github客户端进行版本管理。
对于一个项目,我们先在自己的账号下克隆仓库以及克隆到本地的仓库,进行修改之后pull request,对方接受你的request,则修改完成。
     2.2.github的基本操作
            2.2.1网站操作:
                    1.新建仓库
                    2.修改提交新版本
                    3.关注其他项目
                    4.删除一个现有得仓库
                    5.重命名一个现有仓库
            2.2.3github记录版本顺序的原理
                    每个版本都有自己的一个40位版本号,每个版本都存储自己的版本号以及上一个版本的版本号
    2.3.svn和GitHub的区别
            svn:集中式的版本控制系统
            GitHub:分布式的版本控制系统
                         svn集中式的版本控制系统:有一个中央服务器,它保留着已提交的版本,所有人都需要先download最新的版本修改提交。
                         github分布式的版本控制系统:所有的电脑上都有所有的版本,没有 一个中央的服务器,所做的修改只需要推送给对方就可以了。
                         在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
             区别:如果是svn那种方式来进行项目协同管理,如果中央服务器出现故障则整个项目也无法恢复了,而且svn是需要联网的,不管是推送还是下载都需要一定的时间
                      如果是git这种方式,每个开发的机器上都有历史版本,git具有强大的分支管理。
    2.4.github客户端的使用
           2.4.1.github访问慢的解决办法
                1.翻墙:推荐fg759p.zip  地址:http://pan.baidu.com/s/1kUKkWKJ
                2.github之所以访问慢的问题:GitHub的某些域名被污染了,我们可以通过修改本地的host文件,将对应的IP和域名进行绑定。
                                                            host文件:我们在访问某些网址时,先要进行域名解析。常常先看host文件中是否有对应的ip和域名的对应。
          2.4.2.github客户端安装失败的办法
                   失败的日志是这样的:激活https://github-windows.s3.amazonaws.com/GitHub.application失败
                                                        +下载***失败
                   想下载快点儿的话可以使用翻墙软件
                   解决办法:使用IE浏览器
                                     Internet选项-->安全-->可信站点-->站点按钮-->添加 https://github-windows.s3.amazonaws.com/ ;或者去除复选框“对该区域中的所有站点要求服务器验证(https:)”的钩,直接加入 github-windows.s3.amazonaws.com ; -->在IE浏览器中打开 https://github-windows.s3.amazonaws.com/GitHub.application
                                      注意:一定加s,下载不成功重复下载。
          2.4.3.客户端的基本使用
                   1.add:(添加一个现有的仓库)
                      create:新建一个仓库(和网站上新建仓库一样)
                      clone:已有文件
                   2.整个操作流程(GitHub,Local)
                      本地编辑修改
                      提交修改 (可以只选择部分提交)
                      撤销版本
                      提交到GitHub上
                      同步
                      每次修改之后都要同步
         2.4.4.github分支操作
                   1.github分支得简单操作
                               创建分支,修改分支,提交分支,删除分支(删除远端分支,删除本地分支),修改默认分支
                    2.分支的作用
                              我们需要进行新的功能的开发,我们又不想动修改原来的版本,这时我们可以创建一个新的分支,在新的分支上进行修改,这样并不影响原来的分支。                       
                    3.分支的原理
                              一个仓库都有一个默认得master分支
                             
                             新建一个分支
                                          
           2.4.5.分支合并(远端master和本地master不是相同的分支)
                   合并分支到master
                              update from master 从master更新分支
                   合并master到分支
                              pull request-->  from ** to** -->在github网站上的pull request上尽行merged
                  远端master和本地master分支合并,也就是我们所说的同步sysc。
           2.4.6.分支冲突
                    分支情况有一下两种:说的
            
                   第一种分支融合不存在冲突,融合后结果如下:
                
                这是一个“融合版本”( Merge Commit )这个合并挺特殊,里面一般没有修改内容,它的作用主要是把两个分支合并起来。怎么合并的呢?把 master 的内容 sync 到 github.com 上,然后查看一下这个 merge commit ,会发现它有两个 parent 。merge之后,master分支指向了merge commit 也就自动拥有了 idea 分支上的 C3 这个版本了。idea 分支一般这会儿就可以删除了。
                 远端和本地分支合并,如果如上,不是修改的相同部分,不会发生冲突,这样我执行 sync,跟本地两个分支合并是一样的,一般也会生成一个 merge commit,在本地客户端和 github.com 上的历史线都可以看到。
                分支融合出现冲突,有以下两种情况:
                   1.第二种分支情况,比如我们在新分支上开发着新的功能,这时master分支上有一个bug需要修改,我们会到master分支上修改,commit之后再到新分支上修改,如果我们修改的不是相同的代码,不会发生冲突。进行如下融合:
          
                  如果我们修改的是相同位置的代码,则会发生冲突。git不知道应该听谁的,只会把冲突得位置报出来,
                       test project for gitbeijing book
                       <<<<<<< HEAD
                       BBB
                       =======
                       AAA
                      >>>>>>> idea
                  修改冲突只需要将冲突的三行标识符删去,留下需要的版本。提交修改即可。
                 2.合并远端分支冲突
                 在特定条件下,点 sync 按钮两个分支合并会不使用融合( merge )方式,而采用“变基”( rebase )方式,这样最终不会生成一个 merge commit 。但是达成的效果是一样的,也是实现了两个分支代码的合并,处理冲突的方式也一样,所以暂时不必深究。                            
3.团队使用github协作流程(参考网址:gitbeijing.com/flow/)
         3.1. GitHub  工作流程
                 1.创建一个分支
                 2.为分支添加版本
                 3.开启一个pull Request(拉取请求)(pull request的目的就是引发代码审核和讨论)
                 4.讨论和代码审核
                 5.合并分支,进行部署
         3.2.具体团队协作流程
                 1.为队员创建一个写权限(settings-->Collaborators-->add)协作人员和建立项目人员具有相同的权限
                 2.一方开分支,添加新的版本,这样队员在自己的账号下也可以看到,可以做一些评论
                 3.修改好之后,可以pull request :指出哪个分支和哪个分支进行对比,代码对比会被标明,pull request 还需要添加一些解释
                 4.需要进行版本融合,删除原来的没有用的分支
         3.3.开源项目的开发流程
                1.fork某一个开源项目(拷贝)
                2.再同步到本地,进行相应的开发
                3.然后再pull request给项目的创建者
                4.
   
0 0
原创粉丝点击