Git(一)

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。git

GIT不只仅是个版本控制系统,它也是个内容管理系统(CMS),工做管理系统等。算法

若是你是一个具备使用SVN背景的人,你须要作必定的思想转换,来适应GIT提供的一些概念和特征。vim

Git 与 SVN 区别点:windows

  • 一、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。bash

  • 二、GIT把内容按元数据方式存储,而SVN是按文件:全部的资源控制系统都是把文件的元信息隐藏在一个相似.svn,.cvs等的文件夹里。网络

  • 三、GIT分支和SVN的分支不一样:分支在SVN中一点不特别,就是版本库中的另外的一个目录。eclipse

  • 四、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺乏的最大的一个特征。分布式

  • 五、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时下降对版本库的破坏。svn

 

 

我用的是windows系统。安装包地址在这里:https://git-scm.com/download/win工具

 

配置

Git 提供了一个叫作 git config (git-bash.exe这个文件) 的工具,专门用来配置或读取相应的工做环境变量。

这些环境变量,决定了 Git 在各个环节的具体工做方式和行为。这些变量能够存放在如下三个不一样的地方:

  • mingw64\etc\gitconfig 文件:系统中对全部用户都广泛适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
    $ git config --system

     

  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。$ git config --global
    $ git config --global

     

  • 当前项目的 Git 目录中的配置文件(也就是工做目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每个级别的配置都会覆盖上层的相同配置,因此 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

 

配置用户信息:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

 

配置版本差别分析工具

$ git config --global merge.tool vimdiff

 

查看当前配置

$ git config --list

 

Git工做流程

 

基本上跟SVN差很少。

 

基本概念

使用git的话咱们主要管理两个区:

工做区:工做目录

版本库:版本库内又有master 目录与暂存区

 

当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,可是工做区不受影响。

当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工做区则不作出改变。

当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区所有或指定的文件替换工做区的文件。这个操做很危险,会清除工做区中未添加到暂存区的改动。

当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的所有或者部分文件替换暂存区和以及工做区中的文件。这个命令也是极具危险性的,由于不但会清除工做区中未提交的改动,也会清除暂存区中未提交的改动。

 

Git 建立仓库

执行

git init

会建立一个仓库在当前目录下

 

执行

git init newrepo

 

会在newrepo下建立仓库目录

若是当前目录下有几个文件想要归入版本控制,须要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,而后提交:

$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'

 

咱们使用 git clone 从现有 Git 仓库中拷贝项目(相似 svn checkout)。

git clone <repo>

 

若是咱们须要克隆到指定的目录,可使用如下命令格式:

git clone <repo> <directory>

 

 

接下来是eclipse下使用git的一些记录

提交项目到本地

右键项目→tream→shera project 会出现以下弹窗(今天不能上传图片不知道为啥)

而后选择use or create repository in parent folder of project 可建立仓库

或者create出一个新的路径做为你的仓库路径

而后像svn那样在team中选择synchronize Workspace 对比代码差别。初次建库通常没什么差别

右键 commit.这个时候会看到三个选框

点开有差别文件的选框。右键add to index打包为一个标签

而后填写commit信息

点击commit 则提交了代码

 

提交项目到网上

你在本地提交了项目以后可选择 

项目右键>>team>>remote>>push 

选择你在码云上建立的项目分配的路径

你的输入你的帐户名密码下一步

第二个页面第一个下拉框选择master 

点击add Speace……

建立出update以后勾选 force update 点击finsh

 

拉项目须要在 eclipse上面选择window

show view  选择other

而后找到管理git仓库的Git repositories

而后控制框内第一个add……能够增长仓库进行管理,输入路径就能够选择该路径下的仓库

而后添加到仓库管理中去

跟svn不一样的是,git拉项目须要右键 import Project

 

今晚不能截图不知道为啥。。将就着记录吧。

相关文章
相关标签/搜索