【Git版本控制】Git版本控制工具使用说明和规范教程

windows环境下的Git版本控制工具使用说明和规范。

一、Git的安装与使用

1.1 前言

SVN是集中式版本控制系统,版本库集中放在中央服务器上,而干活时用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作。

Git则是分布式版本控制系统,即它就没有中央服务器,每个人的电脑就有一个属于自己的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。最终,各自将本地分支先合并,再将合并后的分支推向同名的远程库。

Git和GitHub的区别:Git是分布式版本管理工具,而GitHub是一个网站,可以在github上建立一个网上仓库,然后提交自己的代码到该网上仓库,这样你的每次提交,别人也都可以看到你的代码,同时别人也可以帮你修改你的代码,这种开源的方式非常方便程序员之间的交流和学习。

GitHub是一个非常适合程序员交流的网站,很多国际上的技术大牛都在github上有自己的开源代码,其他人只要申请个账号就可以随意的看到这些大牛写的程序。同时国内的很多互联网公司如百度,阿里等也在github上公布有开源的代码。

Git本地有三个工作区域:工作目录、暂存区、资源库。如果加上远程的Git库就可以分为四个工作区域

  • 工作区(Workspace):就是平时存放项目代码的地方

  • 暂存区(Index/Stage):用于临时存放对文件的改动,事实上就是一个文件,保存即将提交到文件列表信息

  • 资源库(Repository):就是安全存放数据的位置,这里有你提交到所有版本的数据,期中HEAD指向最新放入仓库的版本

  • 远程仓库(Remote Directory):就是托管代码的服务器,简单地说就是项目组中的一台电脑用于远程数据交换

工作区、本地库、远程库三者之间的工作原理及流程如下图:

1.2 版本控制

  • 日常生活中,在word里编辑文字,使用Ctrl + z撤销,或者点击撤销按钮,其实也是一个版本控制的例子
  • 我们在开发中修改代码,问了避免出错,都将其先复制一份在进行代码的开发和修改,我们称之为版本更新,一般命名为v1.0 v1.1 ,大的版本变更则命名为 v2.0 v3.0。有必要,因为人工的去处理不同的版本,做相应备份会很麻烦。
  • 对于git来说,版本控制功能更加强大,更加便于版本更新迭代的操作。

1.3 Git安装流程

初次接触Git的用户,请抽出几分钟时间看一下https://git-scm.com/docs 的介绍文档,相信磨刀不误砍柴工。

本文针对Window平台的Git客户端的安装和使用。

Git 下载地址:https://git-scm.com/downloads

window版本下载:https://git-scm.com/download/win

下载完成后,双击进行安装

安装 Git 并选择所有默认选项,安装完毕后,在系统的任意地方右键点击Git Bash Here在命令行工具中运行 git,如果显示使用信息,则安装完成。

1.4 Git初始配置

在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。

  1. # 设置你的 Git 用户名
  2. git config --global user.name "<Your-Full-Name>"
  3. # 设置你的 Git 邮箱
  4. git config --global user.email "<your-email-address>"
  5. # 确保 Git 输出内容带有颜色标记
  6. git config --global color.ui auto
  7. # 对比显示原始状态
  8. git config --global merge.conflictstyle diff3
  9. git config --list

Git 与代码编辑器
最后一个配置步骤是让 Git 能与你的代码编辑器结合使用。以下是三个最热门的代码编辑器。

  1. #Atom Editor 设置
  2. git config --global core.editor "atom --wait"
  3. #Sublime Text 设置
  4. git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe' -n -w"
  5. #VSCode 设置
  6. git config --global core.editor "code --wait"

1.5 Git工作流程

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到Git仓库;
  4. 提交到远程仓库中

因此,Git管理的文件有三种状态,已修改(modified)、已暂存(staged)、已提交(committed)。

二、Git的使用操作

序号Git命令说明
1git init初始化本地版本库。
2git status查看当前工作区和暂存区文件的状态。
3git add <file>...可以将文件添加到暂存区。
4git commit -m ' '提交更新。

2.1 初始化Git仓库

  • 这个仓库会存放,git对我们项目代码进行备份的文件
  • 在项目目录右键打开 git bash
  • 命令: git init

2.2 Git用户信息配置

  • 就是在git中设置当前使用的用户是谁

  • 每一次备份都会把当前备份者的信息存储起来

  • 命令:

    • 配置用户名:git config --global user.name "xiaoming"
    • 配置邮箱: git config --global user.email "xm@sina.com"

    查看是否配置成功

2.3 把代码存储到.git仓储中

工作区、暂存区以及版本库三者之间的关系。

工作区:就是你在电脑上看到的目录,比如目录testgit下的所有文件(.git版本库目录除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

暂存区(stage):工作区有一个.git隐藏目录,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有就是Git为我们自动创建的第一个master分支。

在Git中每次提交都分为两个步骤:

第一步:用add命令将文件添加到版本库的暂存区

第二步:用commit命令把暂存区的所有内容提交到当前分支上

    1. 把代码放到仓储的门口
    • git add ./readme.md 所指定的文件放到大门口
    • git add ./ 把所有的修改的文件添加到大门口
    1. 把仓储门口的代码放到里面的房间中去
    • git commit -m "这是对这次添加的东西的说明"
    1. add和commit合并写法 可以一次性把我们修改的代码放到版本库
    • git commit --all -m "一些说明"

    • —all 表示是把所有修改的文件提交到版本库

  1. git add ./readme.md // 添加暂存区
  2. git commit -m '提交更新说明' // 提交更新
  3. git status // 查看当前状态

2.4 查看当前状态

当暂存区域已经准备妥当可以提交时,在此之前,请一定要确认还有什么修改过的,或新建的文件还没有git add到暂存区,否则提交的时候不会记录这些还没暂存起来的变化。

所以,每次准备提交前,先用git status查看下,需要提交的文件是不是都已暂存起来了,然后再运行提交命令git commit -m '备注信息'

  • 可以用来查看当前代码有没有被放到仓储中去
  • 命令: git status

2.5 git中的忽略文件

  • .gitignore,在这个文件中可以设置要被忽略的文件或者目录。
  • 被忽略的文件不会被提交仓储里去.
  • 在.gitignore中可以书写要被忽略的文件的路径,以/开头,
    一行写一个路径,这些路径所对应的文件都会被忽略,
    不会被提交到仓储中
    • 写法
      • /.idea 会忽略.idea文件
      • /js 会忽略js目录里的所有文件
      • /js/*.js 会忽略js目录下所有js文件

2.6 查看提交的日志

  • git log 查看历史提交的日志
  • git log --oneline 可以看到简洁版的日志

2.7 回退到指定的版本

  • git reset --hard Head~0
    • 表示回退到上一次代码提交时的状态
  • git reset --hard Head~1

    • 表示回退到上上次代码提交时的状态
  • git reset --hard [版本号]

    • 可以通过版本号精确的回退到某一次提交时的状态
  • git reflog

    • 可以看到每一次切换版本的记录:可以看到所有提交的版本号

注意:通过版本号回退到例如第一版,在想退回到第五版时,需要提前记住版本号,这时在第一版打印git log历史记录提交日志,是看不见后面的版本记录的。但也不必过于担心,可以通过git reflog查看版本的切换记录从而得到版本号


2.8 Git分支

Git之所以能实现分布式版本控制,就是基于其分支管理策略。本地库所做的操作都是在某分支上进行的,不同分支之间可以合并。可以拉取远程分支到本地,也可以推送本地分支到远程。

  1. git branch <branchName> #创建新的分支
  2. git branch -d <branchName> #删除已有分支
  3. git checkout <branchName> #切换到其它分支上
  4. git checkout -b <branchName> #创建并切换分支
  5. git merge <branchName> #合并branchName分支到当前分支上
  6. git branch -r #查看远程分支
  7. git branch -a #查看远程及本地的所有分支,当前分支前加"*"号
  • 默认是有一个主分支master

创建分支

  • git branch dev
    • 创建了一个dev分支
    • 在刚创建时dev分支里的东西和master分支里的东西是一样的

切换分支

  • git checkout dev
    • 切换到指定的分支,这里的切换到名为dev的分支
      git branch 可以查看当前有哪些分支

注意:如果在当前分支未提交,切换到其他分支,会将修改的文件和状态一同带到切换的分支中

创建并切换分支

  • git checkout -b dev
    • 创建并切换到该分支中

合并分支

  • git merge dev
    • 合并分支内容,把当前分支与指定的分支(dev),进行合并
    • 当前分支指的是git branch命令输出的前面有*号的分支
  • 合并时如果有冲突,需要手动去处理,处理后还需要再提交一次.

三、工欲善其事必先利其器

工欲善其事必先利其器,工具的熟练掌握、合理利用,修改记录保存完整,后期检索跟踪问题,以及多项目软件切换合并才能简单易操作,才能保证代码的质量。

提交代码到github

本地仓库和远程仓库建立连接

  • git remote add origin <远程库的网址>

把当前分支的内容上传到远程的master分支上

  • git push [地址] master

    • 示例: git push https://github.com/huoqishi/test112.git master
  • git push origin master 默认是origin别名和master主分支(git push)

pull命令拉取远程分支并与本地分支合并

  • git pull [地址] master

    • 示例: git pull https://github.com/huoqishi/test112.git master

clone命令克隆远程库到本地

  • git clone <远程库的网址>

  • 示例: git clone https://github.com/huoqishi/test112.git master

新建一个仓库并提交到远程

  1. echo "# my-study" >> README.md
  2. git init
  3. git add ./README.md
  4. git commit -m 'first commit'
  5. // git commit --all -m 'first commit'
  6. git remote add origin git@github.com:zevs6/my-study.git
  7. git push -u origin master
  8. // git push

更多相关文章

  1. OpenStack菜鸟笔记:溯源篇
  2. 一文看懂 Kubernetes API 稳定性设计
  3. Laravel 7安装laravel/scout报错:“Your requirements could not
  4. svn命令使用
  5. 什么是Linux系统?哪个发行版本好?
  6. git日常命令
  7. 代码管理平台GIT
  8. 如何管理不同环境之间的发布版本?
  9. 关于Istio v1.0,你需要知道的事儿

随机推荐

  1. Phonegap软键盘遮挡输入框问题
  2. 漫谈Android安全框架
  3. Android开发者指南(11) ―― Optimizing
  4. Android NDK环境搭建
  5. Android(安卓)Lifecycle 生命周期管理
  6. HelloWorld-----Google手机操作系统Andro
  7. android客户端与服务端交互的三种方式
  8. android browser 的几个小feature (一)
  9. Android(安卓)地区语言和简写对照表
  10. 视频教程-Android Material Design 新控