Git的使用

一、Git概述

        git 是一个代码协同管理工具,也称之为代码版本控制工具,代码版本控制或管理的工具用的最多的主要 是svn、 git SVN 是采用的同步机制,即本地的代码版本和服务器的版本保持一致(提交版本时,直接 提交到服务器), 而git是采用异步机制(分为本地仓库和远程仓库),本地提交的版本不会影响服务器 的版本,只有本地的代码上传到服务器时才会同步。
        git 是一个开源分布式版本控制系统,可用于高效的管理不同大小的项目, 05 年创造的,由林纳斯(Linux 之父)发明的。

git多人协同开发

代码版本管理工具主要的功能是多人协同开发,其作用:
        防止代码丢失,可以做备份
        代码版本的管理,可以进行多个版本之间的跳跃
        可以方便的将代码在多人之间进行共享传输
        多人开发时,有各种模式(分支、标签)可以方便代码管理

git 的特点

        git 可以管理各种文件,特别是代码项目,多在 linux unix 系统中使用
        是分布式管理,不同于集中式,这是 git svn 的核心区别
        git 可以很好的支持分支,方便多人协作工作 git 分布式代码分家安全,有全球唯一的 commit 版本号
        git 是开源的系统
        使用 git 可以脱网工作 ( 本地仓库 ) ,且数据传输速度较快

Git的安装与应用

Windowgit的安装

Git的使用_第1张图片

Git的使用_第2张图片
Git的使用_第3张图片
Git的使用_第4张图片

Linux下安装git

Ubuntu 系统下,基于 apt 安装
sudo apt install git -y

git的配置

三个级别配置文件的路径: system (Linux /etc/gitconfig), global(~/.gitconfig), 本地配置(项目工程的配置, ./.git/config

配置全局的用户名

给定 git 用户的名称(自定义的)
git config --global user.name "disenQF"

配置全局的用户邮箱

同配置用户名相同,自定义 git 用户的邮箱
git config --global user.email "[email protected]"

查看配置信息

配置信息之后,可以查看配置信息,确认是否 OK
git config --list
git config -l

git常用指令

Git的使用_第5张图片

初始化本地仓库

Git的使用_第6张图片

添加文件到暂存区

        将当前目录下的文件添加到暂存区中,如果文件没有添加到暂存区时,显示的状态应该是红色的,添加到暂存区之后,显示状态的颜色应该是绿色的。
查看文件的状态:
        git status
添加文件到暂存区:
         git add < 文件 > ... | . | *
        . 表示当前工作目录
        <文件 > 表示具体的某一个文件全名(带扩展名)
        * 表示任意多个任意字符的文件, 代表所有的文件及目录(目录中的子文件及子目录)
可以将暂存区的文件删除:
git rm --cache < 文件 > ... | -r . | *
Git的使用_第7张图片
【注意】 git rm -- cache - r . 命令可能会将仓库中的文件删除,如果出现这种情况,可以将此文件恢 复:
        git restore --staged a.txt
Git的使用_第8张图片
Git的使用_第9张图片
git restore -- staged ... 命令也可以将暂存区的文件删除         

提交版本

将暂存区的文件,提交到本地仓库中, 产生一个新的提交版本号 ( 世界上唯一的 )
git commit -m " 本次提交版本的消息 "
Git的使用_第10张图片

查看提交的版本信息

提交的版本可以通过命令查看:
git log
Git的使用_第11张图片
可以限制显示版本号的数量 :
git log -n 版本数量
Git的使用_第12张图片
如果只想显示版本号和消息,可以单行显示:
git log --pretty=oneline
Git的使用_第13张图片
比较本地与仓库中的文件
在将文件提交到本地仓库之后,再次修改此文件时,可以比较本地文件与仓库中的文件内容进行比较:
git diff
Git的使用_第14张图片

恢复操作

Git的使用_第15张图片

Git的使用_第16张图片

Git的使用_第17张图片

Git的使用_第18张图片

回到上一个版本
git reset --hard HEAD^
【注意】 ^ 表示上一个版本号,如果是前 2 个版本号使用两个 ^ ^^
Git的使用_第19张图片
Git的使用_第20张图片
回到指定的版本
可以回到指定的版本号上
git reset --hard
【注意】 commit_id 版本号只需要写出唯一的前几位即可(至少前 4 位)。
Git的使用_第21张图片
查看所有的操作记录
git reflog
Git的使用_第22张图片

标签管理

标签是在当前工作的位置添加的快照,用于保存工作状态,一般用于版本的迭代。
创建标签
在当前提交的版本上创建标签,如:
git tag 标签名 [-m " 标签的消息 "]
Git的使用_第23张图片
如果为指定提交版本号创建标签也可以的,如:
git tag 标签名 [-m " 标签的消息 "]
Git的使用_第24张图片
查看标签
I. 查看标签的名称
git tag
查看标签的详细信息
git show < 标签名 >
Git的使用_第25张图片
删除标签
可以将标签(从版本号上)删除
git tag -d < 标签名 >
Git的使用_第26张图片
恢复到指定的标签
标签和版本号绑定的,在恢复代码版本时,可以使用标签
git reset --hard < 标签名 >
Git的使用_第27张图片

临时工作区管理

临时工作区可以理解为某个区间,如暂存区、当前工作区等。
创建临时工作区
创建临时工作区的目的是保存未提交文件的状态(红色【新文件、修改文件】未添加到暂存区的、绿色
【已添加到暂存区】)
Git的使用_第28张图片
查看临时工作区
git stash list
Git的使用_第29张图片
Git的使用_第30张图片
使用指定的临时工作区
git stash apply stash@{ 编号 }
Git的使用_第31张图片
Git的使用_第32张图片
删除临时工作区
使用并弹出最近的临时工作区
git stash pop
Git的使用_第33张图片
删除临时工作区
git stash drop stash@{ 编号 }
Git的使用_第34张图片
清空临时工作区
git stash clear
Git的使用_第35张图片

分支操作

        分支主要用于多人协作工作,分支即获取原有代码,在此基础上创建自己的工作环境,单独开发, 不会影响其他 分支的操作,开发完成后再统一合并到主线分支中。
创建分支的好处:安全,不影响其他人工作(复制一份新的程序,继续扩展或开发 )

分支的分类

按工程的项目进行代码分支的管理:以项目为准,存在 master 主分支与开发分支。
Git的使用_第36张图片
Git的使用_第37张图片
依据分支使用的时间长短将分支分为长期分支和短期分支:
长期分支: master develop
短期分支 : feature, release, bugfix hotfix
查看当前分支
git branch
Git的使用_第38张图片
3 创建分支
I. 只创建分支
在当前分支下(最新的版本号)创建一个新的分支。新分支的内容与创建分支的位置(版本号)相同。
git branch < 分支名 >
Git的使用_第39张图片
创建并切换分支
git checkout -b < 分支名 >
Git的使用_第40张图片
切换分支
git checkout < 分支名 >
Git的使用_第41张图片
合分支到当前分支
如果在当前分支下创建的新的分支存在新的提交版本,则需要切换到当前分支下,可以将新的分支合并 到当前分支。 即父分支可以合并子分支。
如: 在 develop 分支下创建的新分支 feature2, feature2 分支下,提交了新的版本,则将新的版本合 并到develop 分支,需要先切换到 develop 分支下,再合并 feature2 子分支。
git merge < 后代分支名 >
Git的使用_第42张图片
feature2 develop 分支的子分支 , 子分支已提交了两个版本。
如果将 feature2 分支合并到 develop 分支上,则需要先切换再合并
Git的使用_第43张图片
注意 : 合并过程中如果没有冲突,直接合并后当前分支即为干净的状态,直接保存在本地仓库中 如果产 生冲突,需要人为的选择,然后在进行 add commit 的操作 在创建分支前,尽量保证当前分支是干 净的,以减少冲突的发生
删除分支
git branch -d < 分支名 >
衍合分支
git rebase < 分支名 >
效果同合并分支,但不一样是不会创建新的版本号,只会更新父分支上最近提交的版本号(是在子分支 创建之后提交的)
Git的使用_第44张图片
Git的使用_第45张图片
Git的使用_第46张图片

远程仓库的操作

gitee的远程仓库概述

远程仓库即为中心服务器上的 git 仓库。目前使用较多的是 gitee( 国内免费 ) github( 国外免费,但
网速特别慢 ) gitlab (私有仓库,企业内部使用)。
gitee 的网址 : https://gitee.com
需要注册账号,并登录。

配置giteessh的密钥

gitee 支持 http ssh 两个协议, http 协议每次使用时,都需要手动输入用户名和口令,比较烦。可
以使用 ssh 协议, ssh 协议支持公钥与私钥实现免密。
gitbash 的窗口中,生成公钥与私钥
查看公钥:
ssh-keygen
Git的使用_第47张图片
查看公钥:
cat ~/.ssh/id_rsa.pub
Git的使用_第48张图片
复制公钥内容
打开 gitee 网页,点击用户头像的下三角图标:
Git的使用_第49张图片
Git的使用_第50张图片
创建仓库
点击用户头像左边的 + 图标,在弹出的子菜单中选择 新建仓库 ,在打开页面,输入仓库的名称及介绍即
可点击【创建】按钮。
Git的使用_第51张图片
Git的使用_第52张图片
本地仓库上传
将本地仓库上传到 gitee 的远程仓库上:
首次上传
先将远程仓库的位置( ssh 仓库位置)添加到本地仓库的配置中,然后再上传,上 传时必须带 - u <
远程仓库的名称 > < 分支名称 >
git remote add origin [email protected]:disenQF/testgit2302.git
git push -u origin "master"
Git的使用_第53张图片
再次上传
git push
Git的使用_第54张图片
Git的使用_第55张图片
强制上传
远程仓库的代码完全由本地仓库的代码替换
git push -u --force origin master
Git的使用_第56张图片

远程仓库下载

首次下载
通过克隆的方式下载的远程仓库
git clone [email protected]:disenQF/testgit2302.git
Git的使用_第57张图片
从远程仓库更新本地仓库
git pull
Git的使用_第58张图片

你可能感兴趣的:(GIT,C语言,JavaScript,git)