zoukankan      html  css  js  c++  java
  • svn与git区别简介,git分支操作在mac客户端soureTree和使用命令行如何实现

    svn与git区别简介:

    性能方面(经过实践的)

    svn:下载速度慢,因为它其中的源文件太多,并且在show log日志的时候每次都需要去服务器拉取,速度很慢

    git:下载速度快,并且git clone项目后在本地可形成自己的服务器,这时show log日志的时候就不需要去中心服务器上拉取,很快便可查看

    依赖性方面

    svn:集中式管理,会有一个svn服务器,用户从svn服务器上checkout到本地之后,修改后提交到svn服务器,这时所有可以操作这个项目的人有改动都会提交到这个svn服务器,会造成冲突

    git:分布式管理,有一个中心服务器,用户从中心服务器上git clone项目后在本地可形成自己的服务器,每个人在本地操作文件时只有等到确认无误需要提交时才需要push到远程服务器,其他时候均可在本地完成

    分支的使用方面

    svn:svn创建分支需要在svn服务器上复制需要的分支再创建新的分支,这样的话别人一更新便会把创建的新分支也更新下来,这样再想删除分支便需要考虑太多

    git:git可在本地根据需要创建分支,在新建的分支上进行开发,如果新建分支上的开发需要上线,再将新建分支上的内容合并到主分支上进行合并提交

     1 查看分支:git branch
     2 
     3 创建分支:git branch <name>
     4 
     5 切换分支:git checkout <name>
     6 
     7 创建+切换分支:git checkout -b <name>
     8 
     9 合并某分支到当前分支:git merge <name>
    10 
    11 检出某分支的某个文件到当前分支:git checkout <branchName> <fileName>
    12 
    13 删除分支:git branch -d <name>

    git分支操作:创建分支、合并分支、删除分支

    一、在git客户端mac版soureTree上来实现创建分支、合并分支、删除分支

    1.导入一个仓库,我绑定的账户是自己的github账号,导入的也是github上的一个项目为例

    2.查看当前文件和分支branch

    当前只有一个master主分支和几个文件

     3.这时候我想写一个测试例子,并不想污染主分支的内容,那么就可以新建一个分支进行开发

    创建一个新的分支test

    4.这时候,可以看出我当前是在test分支上新建了一个文件testSubBranch.html,在文件状态里面将会实时展现出来更改后的和需要提交的文件。这时,选中testSubBranch.html,可在下面填写修改的log,有一个可选项'立即推送变更到 origin/test',具体如图中缩写,我这时候没有勾此项进行提交

    5.查看远程github上的项目目录,发现目前还是只有一个master主分支,并且没有我新建的html文件。也就是,我提交只是提交到自己本地版本控制里面test分支上了,并没有影响远程服务器

    6.如果确定没问题了,想要传到远程服务器上并且也将test分支推送上去,则选择推送到origin/test。

    7.查看远程项目,可看到已有test分支,并且分支下的内容包括了新建分支时继承的master分支的内容,还有我新建的testSubBranch.html文件

    8.分支合并,将test分支合并到master分支,选中master分支,在test分支上右键可以看到合并test到master,点击即可将test下的内容合并到master分支上

    二、命令行实现git分支操作

    1.创建分支并切换到新建的分支

    创建并切换分支命令:git checkout -b 分支名;相当于:git branch 分支名,git checkout 分支名

    查看分支命令:git branch

    2.在新分支上新增文件并进行提交

    目前已处在firstBranch分支上,在文件夹中新建firstBranch.html

    查看当前分支下有修改的文件状态:git status

    新增新建的文件:git add 文件名

    提交文件但只在本地提交并没有提交到远程中心服务器上:git commit -m '描述'

    查看新分支firstBranch分支上的文件:

    可以看到有新建的firstBranch.html

    3.切换分支到master主分支上

    查看master主分支上的文件发现并没有新建的firstBranch.html,这是因为我们提交的内容在firstBranch分支上,而master分支上并没有此提交或者合并

    4.合并分支 

    整个分支进行合并:

    切换到master分支上之后进行合并分支:git merge 需要合并的分支

    使用命令:git branch可以查看当前是在master分支,再使用ls命令查看当前文件夹下的文件,可以看到我们在firstBranch分支上新建的firstBranch.html文件了 

    分支中的部分文件进行合并:

    (1)新建new1.html,new2.html,最终我只是想把new1.html合并到master主分支中,并不是把firstBranch分支都合并到master主分支中去

    (2)切换到master主分支——没有看到new1.html

    《1》git checkout 分支名 需合并的文件名

    《2》git status:查看文件的修改状态

    《3》git add *:新增文件

    《4》git commit -m '描述':提交文件到本地版本控制中

    《5》ls:查看当前文件夹下的文件可以看到new1.html了,这也就是说new1.html已经添加到master主分支了

    《6》git push:将修改的文件提交到远程服务器上

     

    远程服务器上的文件列表:

    5.提交分支修改文件到远程服务器

    使用git push将合并后需要提交到远程服务器的文件提交到远程服务器,供partner更新使用查看

    5.删除分支

    删除分支命令:git branch -d 分支名;再使用git branch命令查看当前就只剩下master一个分支了

     因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

     实践得知,git创建分支是为了我们可以同时多向开发而互不影响,在我们确认无误可以跟大家共享的时候,再将新建分支开发的内容合并到主开发分支上。并且各个分支之间开发互不影响。

    参考文档:git教程 

  • 相关阅读:
    静态变量和非静态实例变量的区别
    引用iScroll.js实现上拉和下拖刷新
    微信公众平台开发(一) 配置接口
    Javascript中event.srcElement和event.target的区别
    js执行环境的深入理解
    jQuery on()方法
    JAVA基本类库介绍
    Java程序员学习之路
    Java以基础类库
    jQuery插件的开发之$.extend(),与$.fn.extend()
  • 原文地址:https://www.cnblogs.com/eyunhua/p/6735379.html
Copyright © 2011-2022 走看看