版本控制工具--git详解

Git 是一款开源免费的版本控制系统,是一个应用程序

Git 作用

  • 代码备份

  • 版本回退

  • 协作开发

  • 权限控制

下载安装

下载地址 Git ,安装方式与 QQ 安装相同,一路下一步,中间可以设置软件的安装路径  

Linux 常用命令

 Linux 是一套开源免费的操作系统,它与 Windows 属于同一类型的事物,但是操作方式却与 windows 不同。

命令 介绍
touch 文件名 创建一个文件
mkdir 文件夹名称 创建文件夹(make directory)
ls 查看文件夹下的文件 (list 单词的缩写)
cd 改变工作目录,(change directory 缩写)
Tab 路径自动补全
clear 清屏(也可以使用 ctrl + l  快捷键)
rm 文件名 删除文件或文件夹
rm -rf 文件名 强制删除(慎用)
echo 文本 > 文件名 文件写入文本
cat 文件名 查看文件内容
ctrl + c 取消命令
cp 文件名1 文件名2 复制[文件名1]粘贴[文件名2]
mv 文件名1 文件名2 [文件名1]重命名[文件名2]
mv 文件名1 路径 [文件名1]移动到[路径]
上下方向键 查看命令历史

Vim 基本使用

Vim 是一款命令行下的文本编辑器,编辑方式跟图形化编辑器不同

Vim 编辑文件的步骤:

  1. 命令行 vim 文件名 打开文件

  2. 按『i』进入编辑模式

  3. 编辑文件内容

  4. ESC + :wq 保存并退出 w: write q: quit

    ESC + :q! 不保存并退出(强制退出)

vim 888.txt  ---> 使用vim编辑器打开888.txt文件,打开它的时候就变成编辑器模式,不在是终端模式
此时编辑器是处于[命令模式]
yy  命令模式下yy代表的是复制光标所在行
p   命令模式下p代表的是粘贴
dd  命令模式下dd代表的是删除光标所在行
按下 i / a / o 进入[输入模式],编辑器底部显示 INSERT 此时就可以编辑文本内容
按下 esc 退出输入模式,回到[命令模式]
按下: 此时处于[底线命令模式](底行模式)
输入
    :wq  ---> 保存并退出
    :q!  ---> 不保存退出(强制退出)
    :q   ---> 退出  --> 在你没有修改过文件的时候就可以用
    :w   ---> 保存  ---> 只是保存 

Git 使用

 第一次使用 Git 的时候,我们需要配置用户名和邮箱,记录开发者的信息

# 配置自己的姓名
git config --global user.name "Your Name" 
# 配置自己的邮箱
git config --global user.email "[email protected]"  

注意

  1. 命令之间有空格

  2. 上面的两个命令只需要运行一次即可, 如果输入错误, 重新运行命令即可

  3. 可以使用 git config -l命令来查看配置信息 (使用 q 字母退出配置查看窗口)

  4. 这个命令以后不用自己手敲, 直接复制修改『名字』与『邮箱』即可

基本操作

Git 的起始操作包括以下几个步骤

  1. 创建并进入空文件夹

  2. 右键 -> 点击 Git Bash Here 启动命令行

  3. 仓库初始化 (一个仓库只运行一次 git init)

    git init
  4. 创建一个初始化文件 index.html

  5. 将文件加入到暂存区

    git add index.html
  6. 提交到仓库

    git commit -m  文字说明

版本库的三个区域

  • 工作区(代码编辑区)

  • 暂存区(修改待提交区)

  • 仓库区(代码保存区)

命令 作用
git   status 查看版本库状态
git   add   -A 添加所有修改到暂存区
git   add   . 添加所有修改到暂存区
git   commit   -m 注释  建立存档并添加注释
git restore --staged 文件名 将暂存区的文件返回到工作区(不常用)
git ls-files 查看暂存区文件
git diff 查看工作区与暂存区的差异(不显示新增文件)
git diff --cached 查看暂存区与仓库的差异

nothing to commit, working tree clean

代表没有可以提交的内容,此时三个区处于同一状态

在 git bash 命令行当中可以通过颜色来区分当前处于什么状态

红色: 代表文件处于工作区 ----> git add -A --> git commit -m '文本'

绿色: 代表文件处于暂存区 -----> git commit -m '文本'

git commit 两种使用方式

git commit -m '文本' 直接添加描述信息,进行存档

git commit 进入vim编辑器模式,输入描述信息,进行存档  

在第一次使用git时候,要配置[用户名]和[邮箱],只配置一次  注意: 这两行命令不用记

正式使用:
1. git init
    初始化一个仓库,初始化的仓库在当前路径下,会创建一个隐藏文件夹 [.git]
    注意: 不要去修改这个文件夹中的东西, 不要仓库嵌套仓库
    这个命令只在初始化仓库的时候使用一次
    此时三个区域就已经存在了(工作区、暂存区、仓库区),这三个区域存的是一种状态
-----------------------------------------------------------
创建文件 index.html 
    在工作区创建了一个文件
git  add  .
    将工作区所有的内容添加到暂存区
git  commit -m '描述信息'
    将暂存区的所有内容添加到仓库区
    此时工作树清洁,三个区处于同一个状态
-----------------------------------------------------------
创建文件 app.js
    在工作区创建了一个文件
git add .
    将工作区所有的内容添加到暂存区
git restore --staged app.js
    将app.js从暂存区移除,返回到工作区
    注意: 这条指令只能在文件添加到暂存区使用
    此时 app.js 在工作区
git ls-files
    查看当前暂存区里面的文件列表,这只是看文件的列表,和添加工作区、添加暂存区没关系
    此时显示只有 index.html
git add .
    将工作区所有的内容添加到暂存区
git ls-files
    查看暂存区里面文件列表  index.html app.js
git commit -m '第二次修改'
    暂存区添加到仓库区
-----------------------------------------------------------
修改文件 index.html 内容
    此时工作区更新了内容
git diff
    查看工作区和暂存区的差异
git add .
    将工作区所有的内容添加到暂存区
git diff --cached
    查看暂存区和仓库区的差异


注意的点:
git status
    红色:  处于工作区
    绿色:  处于暂存区
git restore --staged app.js
    只能在工作区添加到暂存区之后使用
git diff
    这个文件一定是已存在的文件,如果是新建文件不好使
    对比差异的绿色代表新增内容
    对比差异的红色代表删除内容

命令 作用
git init 仓库初始化
git add -A 将工作区修改添加至暂存区
git commit 提交 建立新的存档
git status 查看仓库的状态 『绿色』提示
git log 查看历史命令
git checkout -b name 创建并切换分支
git merge name 分支的合并
git branch 查看分支
git checkout name 切换分支
git clone 克隆仓库
git pull 更新分支
git push 推送分支
git remote 仓库 URL 的别名管理
.gitignore 配置忽略

版本回滚

Git 可以将项目代码内容切换到历史的任何一个版本  

查看历史记录

git log
git log --oneline

版本回滚

 git reset --hard  b815fd5a6ae655b521a31a9 

进行版本回退时,不需要使用完整的哈希字符串,前七位即可

版本切换之前,要对工作区内容进行提交  add commit 

找不到版本号的情况

 查看所有的操作记录:git reflog 

配置忽略文件 

项目开发过程中有些文件不应该存储到版本库中,这个时候配置忽略这些文件。常见情况有:

  1. 临时文件

  2. 多媒体文件,如音频,视频

  3. 可执行文件,如 exe 文件

  4. 编辑器生成的配置文件 (.idea)

  5. npm 安装的第三方模块

 Git 中需要创建一个文件 『.gitignore』 设置忽略,一般与 .git 目录同级,常用规则如下:

 # 忽略所有的 .idea 文件夹
.idea
# 忽略所有以 .test 结尾的文件
*.test
# 忽略 node_modules 文件和文件夹
/node_modules

仓库中已经提交该文件

1.对于已经加入到版本库的文件,可以在版本库中删除该文件

git rm --cached .idea

2.然后在 .gitignore 中配置忽略

 .idea

3.add 和 commit 提交即可

分支

分支是 Git 重要的功能特性之一,开发人员可以在主开发线的基础上分离出新的开发线  

基本操作

命令 作用
git branch name 创建分支
git branch 查看所有分支
git checkout name 切换分支
git merge name 合并分支
git branch -d name 删除分支
git checkout -b name 创建并切换

 注意: 每次在切换分支前 提交工作区的修改

分支冲突

当多个分支修改同一个文件后,合并分支的时候就会产生冲突,冲突的解决非常简单,『将内容修改为最终想要的结果』,步骤如下:

  1. 定位产生冲突的文件 (git status both modified 标识的文件为有冲突的文件)

  2. 修改冲突文件的内容为最终正确的结果

  3. git add -A 和 git commit 提交即可

GitHub

GitHub 是一个 Git 仓库管理网站。可以创建远程中心仓库,为多人合作开发提供便利。  

使用流程

 GitHub 远程仓库使用流程较为简单,主要有以下几种场景:

本地有仓库

  1. 注册并激活账号

  2. 创建仓库

  3. 获取仓库的地址

  4. 本地配置远程仓库的地址

    git remote add origin https://github.com/xiaohigh/test2.git  
    //远端仓库管理   列宁    弗拉基米尔·伊里奇·乌里扬诺夫   
    add  添加
    origin 远端仓库的别名
    https://github.com/xiaohigh/test2.git    仓库地址
  5. 本地提交(确认代码已经提交到本地仓库)

  6. 将本地仓库内容推送到远程仓库

    git push -u origin master
    //
    push 推送
    -u   关联, 加上以后,后续提交时可以直接使用 git push
    origin 远端仓库的别名
    master 本地仓库的分支

git remote add origin https://gitee.com/newsegmentfault/project_0528_4.git

git push -u origin "master"

推代码第一次是需要输入用户名密码的,第二次开始就不需要了

git checkout . 工作区修改文件代码 回退到工作树清洁的状态(只能回退已存在文件内容)

本地没有仓库

  1. 注册并激活账号

  2. 克隆仓库

    git clone https://github.com/xiaohigh/test2.git 
  3. 增加和修改代码

  4. 本地提交

    git add -A
    git commit -m 'message'
  5. 推送到远程

    git push origin master

克隆代码之后, 本地仓库会默认有一个远程地址的配置, 名字为 origin

多人合作

账号仓库配置

GitHub 团队协作开发也比较容易管理,可以创建一个组织

  • 首页 -> 右上角 + 号-> new Organization

  • 免费计划

  • 填写组织名称和联系方式(不用使用中文名称)

  • 邀请其他开发者进入组织(会有邮件邀请)

  • 点击组织右侧的 settings 设置

  • 左侧 Member privileges

  • 右侧 Base permissions 设置 write

协作流程

第一次提交

  1. 得到 Git 远程仓库的地址和账号密码

  2. 将代码克隆到本地(地址换成自己的)

    git clone https://github.com/xiaohigh/test.git
  3. 切换分支

    git checkout -b 新分支名
  4. 开发代码

  5. 本地提交

    git add -A
    git commit -m '注释内容'
  6. 合并分支

    git checkout master
    git merge 新分支名
  7. 更新本地代码

    git pull
  8. 提交代码

    git push 

工作流程

第 N 次流程

  1. 更新代码

    git pull
  2. 创建并切换分支

    git checkout -b 新分支名
  3. 开发功能

  4. 提交

    git add -A
    git commit -m '注释'
  5. 合并分支

    git checkout master
    git merge 新分支名
  6. 更新代码

    git pull
  7. 推送代码

    git push
    

冲突解决

同分支冲突一样的处理,将代码调整成最终的样式,提交代码即可。

GitFlow

GitFlow 是团队开发的一种最佳实践,将代码划分为以下几个分支  

版本控制工具--git详解_第1张图片

  • Master 主分支。上面只保存正式发布的版本

  • Hotfix 线上代码 Bug 修复分支。开发完后需要合并回Master和Develop分支,同时在Master上打一个tag

  • Feather 功能分支。当开发某个功能时,创建一个单独的分支,开发完毕后再合并到 dev 分支

  • Release 分支。待发布分支,Release分支基于Develop分支创建,在这个Release分支上测试,修改Bug

  • Develop 开发分支。开发者都在这个分支上提交代码

你可能感兴趣的:(git,github)