Git使用方法详解

Git是目前世界上最早进的分布式版本控制系统!
git

主流的版本控制器有以下这些:数据库

  • Git(影响力最大使用最普遍)
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Microsoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制分类:安全

  1. 本地版本控制
    • 记录文件的每次更新,能够对每一个版本作一个快照,或者是记录补丁文件,适合我的用,例如RCS。
  2. 集中版本控制
    • 全部版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传本身的修改。
    • 若是不联网,用户就看不到历史版本,没法切换版本验证问题或在不一样分支工做。表明产品:SVN、CVS、VSS
  3. 分布式版本控制
    • 全部版本信息仓库同步到本地的每一个用户(每一个人拥有所有代码),能够在本地看到全部的历史记录,能够离线在本地提交,只需在联网时push到响应的服务器或其余用户那里。
    • 只要有一个用户的设备没有问题就能够恢复全部的数据,但这增长了本地存储空间的占用。
    • 不会由于网络问题而形成不能工做的状况。

1、安装Git及环境配置

下载网址:Gitbash

1.1 先卸载

在安装以前首先确保已经卸载:服务器

  1. 直接反安装便可
  2. 清理环境变量
    安装过程:无脑下一步。

1.2 启动Git

安装成功后开始菜单中有如下三个程序;任意文件夹下右键也能够看到对应的程序。
image网络

  • Git Bash: Unix与Linux风格的命令行,使用最多,推荐最多。
  • Git CMD: Windows风格的命令行。
  • Git GUI: 图形界面的Git,不建议初学者使用,尽可能先熟悉经常使用命令。

1.3 Git的必要配置

全部的配置文件都保存在本地ssh

查看当前关于Git的全部配置:分布式

git config -l

查看Git的系统相关配置:ui

git config --system --list

查看本地Git相关配置(用户配置):url

git config --global --list

Git相关的配置文件:

  1. Git\etc\gitconfig : Git安装目录下的gitconfig --system 系统级
  2. C:\Users\Administrator\.gitconfig : 只适用于当前登陆用户的配置 --global 全局

配置用户信息(用户名与邮箱,必要配置)

git config --global user.name "Sino"
git config --global user.email "12345678@qq.com"

只需作一次这个设置,传递了--global选项,Git将老是会使用该信息来处理在系统中作的一切操做。若是但愿在特定项目中使用不一样的名称或email地址,能够在该项目中运行此命令而不要--global选项。

2、Git基本理论(核心)

2.1 工做区域

Git本地有三个工做区域:

  1. 工做目录(Working Directory)

    • 工做区,平时存放项目代码的地方。
  2. 暂存区(Stage/Index)

    • 用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。
  3. 资源库(Repository或Git Directory)

    • 仓库区(或本地仓库),安全存放数据的位置,这里有你提交到全部版本的数据。其中HEAD指向最新放入仓库的版本。
  4. 若是再加上远程的git仓库(Remote Directory)就能够分为四个工做区域。

    • 远程仓库,托管代码的服务器,能够简单地认为是你项目组中的一台电脑用于远程数据交换。

转换关系以下图:
image
image

  • Directory:使用Git管理的一个目录,也就是一个仓库,包含咱们的工做空间和Git的管理空间。
  • WorkSpace:须要经过Git进行版本控制的目录和文件,这些目录和文件组成了工做空间。
  • .git:存放Git管理信息的目录,初始化仓库的时候自动建立。
  • Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo以前,咱们能够把全部的更新放在暂存区。
  • Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
  • Stash:隐藏,是一个工做状态保存栈,用于保存/恢复WorkSpace中的临时状态。

2.2 工做流程

Git的工做流程通常是这样的:

  1. 在工做目录中添加、修改文件;
  2. 将须要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到Git仓库
    所以,Git管理的文件有三种状态:已修改(midified)、已暂存(staged)、已提交(committed)

3、Git项目搭建

3.1 建立工做目录与经常使用指令

平常使用记住下图6个命令:
image
本地仓库搭建:
建立本地仓库的方法有两种:一种是建立全新的仓库,另外一种是克隆远程仓库。

建立全新的仓库,须要用GIT管理的项目的根目录执行:

  1. 在当前目录新建一个Git代码库

    $ git init

    执行后能够看到,仅仅在项目目录多出了一个.git目录,关于版本等的全部信息都在这个目录里面。

  2. 克隆远程仓库
    另外一种方式是克隆远程目录,因为是将远程服务器上的仓库彻底镜像一份至本地!

    $ git clone [url]  # https://gitee.com/sino/test.git

3.2 Git的基本操做命令

3.2.1 查看文件状态

# 查看指定文件状态
git status [filename]

# 查看全部文件状态
git status

# 添加全部文件到暂存区
git add .

# 提交暂存区中的内容到本地仓库 -m 提交信息
git commit -m "消息内容"

3.2.2 忽略文件

有些时候咱们不想把某些文件归入版本控制中,好比数据库文件,临时文件,设计文件等。
在主目录下创建.gitignore文件,此文件有以下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可使用Linux通配符。例如:星号(*)表明任意多个字符,问号(?)表明一个字符,方括号([abc])表明可选字符范围,大括号({string1,string2,...})表明可选的字符串等。
  3. 若是名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 若是名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 若是名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt        #忽略全部 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的temp文件,不包括其它目录temp
build/       #忽略build/目录下的全部文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

4、Gitee相关使用

  1. 注册登陆
  2. 设置本机绑定SSH公钥,实现免密码登陆
# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
ssh-keygen

image
3. 将公钥信息public key添加到码云帐户中便可
4. 使用码云建立一个本身的仓库

5、Git分支

git分支中经常使用的命令:

# 列出全部本地分支
git branch

# 列出全部远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

# 切换到指定分支,并更新工做区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

master主分支应该很是稳定,用来发布新版本,通常状况下不容许在上面工做,工做通常状况下在新建的dev分支上工做,工做完后,好比上要发布,或者说dev分支代码稳定后能够合并到主分支master上来。

相关文章
相关标签/搜索