zoukankan      html  css  js  c++  java
  • version control(以git为例)讲解

    首先看看百度百科的定义:

    版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如svn,git等。

    以git为例来讲它的用处,举个生动鲜活的例子吧:

    git的最基本作用是版本控制,比如你写一个文档,老板一直让你改,这时笨的人会在原文档上直接改,聪明一点的会复制一下原文档,在副本上修改,这时老板说你的第三版比较好,笨的人煞笔了。。,聪明一点的就直接拷贝了第三版给客户发过去了。然后聪明一点的认为这次的事情完事了把其他没用的都删了,突然有一天老板说客户的意见和你最后一版的相同,这时聪明一点的人也煞笔了。。。。
    来了个最聪明的人,会用git,他在本地建了一个版本库,每次老板让他修改,他就把之前的版本提交一下,并标明这版的主要特点,这样文件夹里就只有一个文档,每次老板说要那个版本的,他就直接从版本库里恢复一下。
    git通常在编程中会用到,通常是多个人同时协作一个项目,有可能出现两个人同时修改一个文件,这时后提交的人会遇到冲突,需要解决冲突;git能够记录每个人的提交修改等形成日志,可以根据提交记录进行回滚;并且git支持分布式部署。

    而git和其他版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生了变化,而多数的其他系统则只关心文件内容的具体差异,它们在每个版本中记录着各个文件的具体差异。在Git中的绝大多数操作都只需要访问本地文件和资源,不需要联网。这是因为Git在本地磁盘上就保留着所有当前项目的历史更新,所以处理起来速度飞快,这是使用空间换时间的处理方式。使用Git,即使在没有网络或VPN的情况下,你同样可以非常愉快的频繁提交更新,等到有了网络的时候再提交到远程的仓库。

    至于git的使用以前用过一些基础的命令,做了一些笔记,现在放上来吧:

    先有本地库,后有远程库,提交到远程库操作:

    第一步:
    git init
    初始化本地仓库
    第二步:
    git remote add origin https:.......
    连接远程仓库
    第三步:
    git add ./
    暂存到缓冲区
    第四步:
    git commit -m "注释内容,根据这个进行版本回滚"
    提交本地仓库中
    第五步:
    git push -u origin master
    提交到远程仓库中去


    远程库有了变化,克隆到本地库中:
    本地仓库初始化
    git init
    克隆:
    git clone (github地址)
    然后在你的本地仓库就会出现这样的文件夹了。

    Git基本常用命令如下:

      mkdir: XX (创建一个空目录 XX指目录名)

      pwd: 显示当前目录的路径。

      git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

      git add XX 把xx文件添加到暂存区去。

      git commit –m “XX” 提交文件 –m 后面的是注释。

      git status 查看仓库状态

      git diff XX 查看XX文件修改了那些内容

      git log 查看历史记录

      git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本

      (如果想回退到100个版本,使用git reset –hard HEAD~100 )

      cat XX 查看XX文件内容

      git reflog 查看历史记录的版本号id

      git checkout -- XX 把XX文件在工作区的修改全部撤销。

      git rm XX 删除XX文件

      git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

      git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

      git clone https://github.com/tugenhua0707/testgit 从远程库中克隆

      git checkout –b dev 创建dev分支 并切换到dev分支上

      git branch 查看当前所有的分支

      git checkout master 切换回master分支

      git merge dev 在当前的分支上合并dev分支

      git branch –d dev 删除dev分支

      git branch name 创建分支

      git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

      git stash list 查看所有被隐藏的文件列表

      git stash apply 恢复被隐藏的文件,但是内容不删除

      git stash drop 删除文件

      git stash pop 恢复文件的同时 也删除文件

      git remote 查看远程库的信息

      git remote –v 查看远程库的详细信息

      git push origin master Git会把master分支推送到远程库对应的远程分支上

  • 相关阅读:
    Android开源库
    银行卡的数字检測
    hdu4941 Magical Forest
    android之检測是否有网络
    在Oracle数据库中使用NFS,怎样调优?
    centos+nginx+php-fpm+php include fastcgi_params php页面能訪问但空白,被fastcgi_params与fastcgi.conf害慘了
    漫谈反射
    Android 四大组件学习之BroadcastReceiver二
    【LeetCode】two num 利用comparable接口 对对象进行排序
    扩展功能==继承?
  • 原文地址:https://www.cnblogs.com/April315/p/10473591.html
Copyright © 2011-2022 走看看