zoukankan      html  css  js  c++  java
  • GIT

    一、GIT简介

      项目开发离不开版本控制,目前使用频率最高的两个版本控制工具分别是 SVN 和 GIT,前者是集中式,后者是分布式。

      集中式是指版本库存在于中央服务器中,使用者通过网络从中央服务器迁出和提交版本,一旦中央服务器出现故障,则会严重影响开发进度。

      分布式是指版本库实质上存在于每个使用者的机器中,本地都有一份完整的版本库,平时开发时向本地服务器迁出和提交,所以速度很快,然后在合适的时机向其它使用者推送修改,以达成同步。注意,此方式一般也有一个中央服务器,但该中央服务器的作用在于方便同步修改,更是一种锦上添花的效果。

      因为分布式产生的年代迟于集中式,吸取了一些经验和独有的设计,所以整体上是明显估于后者的,比较重要的优点如下:

      1、中央服务器的磁盘损坏并不会使项目遭受噩梦般的损失。
      2、平时操作都是跟本地服务器交互,所以速度很快,没有网络时工作也不受影响
      3、强大的分支系统

    二、GIT趣事

      1、GIT的诞生

      Linus 在 1991年创建了开源的LINUX后,由全世界的开发者一起维护,由于Linus反对集中式的版本控制系统,所以刚开始是大家通过 diff 的方式发送给Linus,由其手动合并 。后来有一家名为 BitKeeper 的分布式版本控制系统厂商,愿意免费授权给LINUX社区使用,但好景不长,LINIX社区内有人试图破解其协议,使得 BitKeeper 非常愤怒并收回了LINUX社区的免费使用权,接下来——Linus 花了两周时间自己写了一个分布式版本控制工具,名为GIT。

      2、GIT的名字

      原本有一个软件已经叫GIT(GNU Interactive Tools),所以Linus的这个分布式版本控制工具就只能叫 git-core,但后来可能是因为 git-core 更有地位,原本的 git 改名为 gnuit,而 git-core 正名为 git。(注:Linus 的 GIT 意为 The stupid content tracker, 傻瓜内容跟踪器)

    三、GIT安装与配置

      Linux下,通过包管理工具安装即可;Windows下,因为git是专为LINUX开发的,所以需要安装带有Unix环境的 msysgit,下载地址:http://msysgit.github.io/

      GIT 的配置文件存在于三个地方:

    /etc/gitconfig    //--sysstem
    ~/.gitconfig    //--global
    .git/config        //当前项目目录下    

      1、设置名称和邮箱

    git config --global user.name "MyName"
    git config --global user.email "email@xxx.com"
    //注:使用 --system 表示读写的是 /etc/gitconfig 文件; 使用 --global 表示读写的是 ~/.gitconfig 文件;都不使用表示读写的是当前项目的 .git 目录下的 config 文件。

      2、设置忽略文件后缀

      Windows下,在仓库目录中右键选择 "Git Bash",然后 vim .gitignore 编辑即可:

    *.svn
    *.d
    server

      Linux 下,直接在项目根目录下新建上述的 .gitignore 文件即可。  

      或者编辑项目根目录下的 .git 文件夹下的 config 文件进行配置。

      3、获取帮助

      git help
      git help config
      man git-config
      git config --help

     

    四、开始

      在一个现有项目中使用 git 管理,只需要到此项目目录下执行以下命令即可:

    git init

       如果要克隆一个现在有的GIT管理的项目,可以使用 git clone 命令,它会把该项目的GIT仓库复制一份出来,如:

    git clone git://github.com/schacon/grit.git

      如果想将克隆出来的项目自定义目录名称,只要在命令末尾加上新的名字即可。

    git clone git://github.com/schacon/grit.git ruby

      GIT支持 git:// 协议和 https:// 协议,前者更好。

      GIT有三个区域:工作区域、暂存区域(staged area)和本地仓库。一般编辑区域先保存到暂存区域,再把暂存区域提交到本地仓库。

    六、常用命令

      git add  //把目标文件快照放入暂存区
      git diff  //比较未暂存文件和已暂存文件的差异
      git diff --staged  //查看暂存区中文件和上次提交的快照之间的差异
      git commit -m "commit"   //将暂存区的文件提交到本地仓库
      git commit -a -m "commit"   //跳过添加到暂存区的步骤,将工作区域的文件直接暂存并提交。
      git rm  //从工作区域和暂存区中同时删除
      git rm --staged  //仅从暂存区删除,保留工作区域中的文件,如不小心纳入版本库中的 log 文件等。
      git mv oldname newname  //相当于运行了三条命令: mv oldname newname && git rm oldname && git add newname
      git log  //查看提交历史,如果希望显示简洁日志,可以使用 git log --pretty=oneline
      git reset --hard HEAD^    //回退到上一个版本,或者直接 git reset --hard commit_id
      git reflog    //记录每一次命令
      git checkout  //撤销修改,如果修改后被存入暂存区,则撤销为暂存区一样;若修改后没有存入暂存区,则撤销为版本库一样

     

    七、远程仓库管理

      以 github 为例,学习一下远程仓库的使用方法。

      1、注册一个 github 帐号。

      2、由于本地的 git 仓库与 github 的仓库之间的传输是通过 ssh 加密的,所以需要在本地创建 ssh key,并把公钥上传到 github。创建 ssh key 步骤如下。

        ①  查看 ~/.ssh/ 目录下是否存在 id_rsa 和 id_rsa.pub ,如果有,说明已经创建好了,下面不再继续,直接上传 id_rsa.pub 到 github 即可,如果没有,则使用命令 ssh-keygen -t rsa 进行创建,创建过程中提示输入密码,可以略过使用空密码即可。

        ②  登陆 github ,帐号设置里有一个 Add SSH Key 选项页,填写任意的 title,然后将 id_rsa.pub 中的内容粘贴到 Key 输入文本框中,确认即可。

      3、在 github 上创建一个空仓库,取名为 test ,注意在 github 上免费托管的 git 仓库任何人都可以看到,如果想变成私有的要付费。创建好的仓库会提供三个地址,分别是 git、https 和 Subversion 的。

      4、把本地已有的一个仓库与远征仓库进行关联。进行一个本地仓库,运行以下命令即可。(注意 origin 是为远程仓库命名,可以随意修改,但 origin 是 git 中约定俗成的叫法。)

    git remote add origin git@github.com:your_github_name/test.git

      5、第一次将本地仓库所有内容推送到远程库上

    git push -u origin master

       6、以后只要本地仓库做了修改,推送就可以直接使用以下命令:

    git push origin master

       7、在其它机器上,通过如下命令克隆远程库即可(同样需要将该机器的公钥上传到 github):

    git clone git@github.com:your_github_name/test.git

      8、git pull

      9、git remote -v

    八、分支

      1、创建分支
      git branch branch1    //创建分支branch1
      git checkout -b branch1  //创建分支并切换到该分支,相当于 git branch branch1 && checkout branch1

      2、查看分支   git branch  //显示分支列表,当前分支前面会用 * 表示

      3、切换分支   git checkout master  //切换到 master 分支

      4、删除分支   git branch -d branch1  //删除 branch1 分支

      5、合并分支   git merge branch1  //合并 branch1 分支到当前分支。如果合并分支出现冲突,则需要解决冲突。在执行过 git merge 命令之后,有冲突的文件,会被修改成混合文件,直接编辑修改好后,再通过 git add 和 git commit 提交即可。(通过 git log --graph 可以查看分支合并图)

      6、挂起当前分支   git stash
      
    7、查看挂起的分支   git stash list
      
    8、恢复挂起分支   git stash pop          //恢复上一个挂起的分支   git stash apply stash@{0}   //恢复指定的挂起的分支,指定的名称,从 git stash list 中获取

    unity使用git:

    http://www.cnblogs.com/silence250627170/p/3819042.html

  • 相关阅读:
    使用XmlWriter写入XML
    Xml的一些基本概念(摘抄自w3school.com.cn)
    Basler相机启动问题xml读取出错
    c#开方,平方,sin函数计算
    如果遇到继承控件,添加到新项目里在工具栏找不到的情况下,F5启动一下,重新生成是不会有的,要运行成功才有
    添加项目文件时候不要把引用文件直接放到bin-debug里
    发现三个很好看的控件
    merge into 批量修改语句
    -- oracle上一些查询表和字段语句
    -- oracle上查看储存过程内容
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/4530050.html
Copyright © 2011-2022 走看看