搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
神奇cpp
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
目前最火的测试框架,pytest封神级讲解
2
植物大战僵尸杂交版2024最新版 你的战斗新选择_zywzw
3
Java实现微信小程序登录注册:获取OpenId和手机号_小程序获取用户openid
4
2023-10-19安装Android Studio(AS)教程_running android emulator hypervisor driver install
5
AUTOSAR 信息安全机制有哪些?_idsm
6
稳居商用车ADAS前装第一梯队,这家中国本土供应商靠什么?_商用车 fcw ldw强标
7
【华为机试】2024年真题C卷(java)-最长子字符串的长度1_给你一个字符串s,字符串s首尾相连成一个环形
8
mysql的with的使用_mysql中with和set一起使用
9
【机器学习】集成学习方法:Bagging与Boosting的应用与优势
10
Nginx 配置密码
当前位置:
article
> 正文
GIt的应用_git 应用
作者:神奇cpp | 2024-06-27 12:53:31
赞
踩
git 应用
一、
Git
概述
1.1
什么是
git
git
是一个代码协同管理工具,也称之为代码版本控制工具,代码版本控制或管理的工具用的最多的主要
是
svn
、
git
。
SVN
是采用的同步机制,即本地的代码版本和服务器的版本保持一致(提交版本时,直接
提交到服务器), 而
git
是采用异步机制(分为本地仓库和远程仓库),本地提交的版本不会影响服务器
的版本,只有本地的代码上传到服务器时才会同步。
git
是一个开源分布式版本控制系统,可用于高效的管理不同大小的项目,
05
年创造的,由林纳斯
(
Linux
之父)发明的。
1.2 git
多人协同开发
代码版本管理工具主要的功能是多人协同开发,其作用
:
防止代码丢失,可以做备份
代码版本的管理,可以进行多个版本之间的跳跃
可以方便的将代码在多人之间进行共享传输
多人开发时,有各种模式(分支、标签)可以方便代码管理
1.3 git
的特点
git
可以管理各种文件,特别是代码项目,多在
linux
和
unix
系统中使用
是分布式管理,不同于集中式,这是
git
和
svn
的核心区别
git
可以很好的支持分支,方便多人协作工作
git
分布式代码分家安全,有全球唯一的
commit
版本
号
git
是开源的系统
使用
git
可以脱网工作
(
本地仓库
)
,且数据传输速度较快
二、
Git
的安装与应用
2.1 Window
下
git
的安装
从飞秋共享中
tools
->
Git
-
2.28.0
-
64
-
bit.exe
下载
双击
Git
-
2.28.0
-
64
-
bit.exe
安装步骤:一路next即可
2.3 git
的配置
三个级别配置文件的路径:
system (Linux /etc/gitconfig), global(~/.gitconfig),
本地配置(项目
工程的配置,
./.git/config
)
sudo apt install git -y
2.3.1
配置全局的用户名
给定
git
用户的名称(自定义的)
2.3.2
配置全局的用户邮箱
同配置用户名相同,自定义
git
用户的邮箱
2.3.3
查看配置信息
配置信息之后,可以查看配置信息,确认是否
OK
。
扩展配置
lg
指令别名:
2.4 git
常用指令
2.4.1
初始化本地仓库
在某一个目录下,将当前目录作为本地仓库使用时,需要将此目录进行初始化
git init
初始化命令执行成功之后, 会在当前目录下创建
.git
子目录。
2.4.2
添加文件到暂存区
将当前目录下的文件添加到暂存区中,如果文件没有添加到暂存区时,显示的状态应该是红色的,添加
到暂存区之后,显示状态的颜色应该是绿色的。
查看文件的状态:
git status
添加文件到暂存区:
git add .|... |*
.
表示当前工作目录
<
文件
>
表示具体的某一个文件全名(带扩展名)
*
表示任意多个任意字符的文件, 代表所有的文件及目录(目录中的子文件及子目录)
可以将暂存区的文件删除:
git rm --cache 文件名...| -r . |*
【注意】
git rm
--
cache
-
r .
命令可能会将仓库中的文件删除,如果出现这种情况,可以将此文件恢复:
git restore --staged a.txt
git restore
--
staged <file>...
命令也可以将暂存区的文件删除
2.4.3
提交版本
将暂存区的文件,提交到本地仓库中, 产生一个新的提交版本号
(
世界上唯一的
)
git restore --staged a.txt
git commit -m "本次提交版本的消息"
2.4.4
查看提交的版本信息
提交的版本可以通过命令查看:
git log
可以限制显示版本号的数量
:
git log -n 版本数量
如果只想显示版本号和消息,可以单行显示:
git log --pretty = oneline
2.4.5
比较本地与仓库中的文件
在将文件提交到本地仓库之后,再次修改此文件时,可以比较本地文件与仓库中的文件内容进行比较:
git diff 文件名
2.4.6
恢复操作
I.
从仓库中恢复文件
git checkout 文件名
II.
丢弃本地文件修改的内容
git checkout -- 文件名
III.
将仓库中的文件移动和删除
无论是移动还删除,都会影响本地文件的位置,而且修改之后,必须提交版本。
移动
git mv 文件名 文件夹名
删除:
git rm 文件名...
IV.
回到上一个版本
git reset -- hard HEAD^
【注意】
^
表示上一个版本号,如果是前
2
个版本号使用两个
^
即
^^
V.
回到指定的版本
可以回到指定的版本号上
git reset -- hard 版本号(commit_id)
【注意】
commit_id
版本号只需要写出唯一的前几位即可(至少前
4
位)。
VI.
查看所有的操作记录
git reflog
2.4.7
标签管理
标签是在当前工作的位置添加的快照,用于保存工作状态,一般用于版本的迭代。
2.4.7.1
创建标签
在当前提交的版本上创建标签,如:
git tag
标签名
[-m "
标签的消息
"]
如果为指定提交版本号创建标签也可以的,
如:
git tag
标签名
[-m "
标签的消息
"] <commit_id>
2.4.7.2
查看标签
I.
查看标签的名称
git tag
II.
查看标签的详细信息
git show 标签名
【注意】如果出现了
:
,则需要按
q
退出。也可以在
show
命令上加参数
-
q
。
2.4.7.3
删除标签
可以将标签(从版本号上)删除
git tag -d 标签名
2.4.7.4
恢复到指定的标签
标签和版本号绑定的,在恢复代码版本时,可以使用标签
git reset --hard 标签名
2.4.8
临时工作区管理
临时工作区可以理解为某个区间,如暂存区、当前工作区等。
2.4.8.1
创建临时工作区
创建临时工作区的目的是保存未提交文件的状态(红色【新文件、修改文件】未添加到暂存区的、绿色 【已添加到暂存区】)。
git stash
2.4.8.2
查看临时工作区
git stash list
【注意】最近创建的临时工作区在列表的最上面位置,即
0
位置为最新创建的
2.4.8.3
使用指定的临时工作区
git stash apply stash@{标号}
【注意】在使用临时工作区时,当前工作区不能存在未提交的文件(暂存区是空的)
2.4.8.4
删除临时工作区
I.
使用并弹出最近的临时工作区
git stash pop
II.
删除临时工作区
git stash drop stash@{编号}
III.
清空临时工作区
git stash clear
2.4.9
分支操作
分支主要用于多人协作工作,分支即获取原有代码,在此基础上创建自己的工作环境,单独开发,
不会影响其他 分支的操作,开发完成后再统一合并到主线分支中。
创建分支的好处:安全,不影响其他人工作(复制一份新的程序,继续扩展或开发 )
2.4.9.1
分支的分类
按工程的项目进行代码分支的管理:以项目为准,存在master主分支与开发分支。
依据分支使用的时间长短将分支分为长期分支和短期分支:
长期分支:
master
、
develop
短期分支
: feature, release, bugfix
,
hotfix
2.4.9.2
查看当前分支
git branch
2.4.9.3
创建分支
I.
只创建分支
在当前分支下(最新的版本号)创建一个新的分支。新分支的内容与创建分支的位置(版本号)相同。
git branch 分支名
II.
创建并切换分支
git checkout -b <
分支名
>
2.4.9.4
切换分支
git checkout 分支名
2.4.9.5
合分支到当前分支
如果在当前分支下创建的新的分支存在新的提交版本,则需要切换到当前分支下,可以将新的分支合并
到当前分支。
即父分支可以合并子分支。
如: 在
develop
分支下创建的新分支
feature2,
在
feature2
分支下,提交了新的版本,则将新的版本合
并到
develop
分支,需要先切换到
develop
分支下,再合并
feature2
子分支。
git merge 子分支名
feature2
是
develop
分支的子分支
,
子分支已提交了两个版本。
如果将
feature2
分支合并到
develop
分支上,则需要先切换再合并。
注意
:
合并过程中如果没有冲突,直接合并后当前分支即为干净的状态,直接保存在本地仓库中 如果产
生冲突,需要人为的选择,然后在进行
add
和
commit
的操作 在创建分支前,尽量保证当前分支是干
净的,以减少冲突的发生
2.4.9.6
删除分支
git branch -d 分支名
2.4.9.7
衍合分支
git rebase 分支名
效果同合并分支,但不一样是不会创建新的版本号,只会更新父分支上最近提交的版本号(是在子分支创建之后提交的)
2.5
远程仓库的操作
2.5.1 gitee
的远程仓库概述
远程仓库即为中心服务器上的
git
仓库。目前使用较多的是
gitee(
国内免费
)
、
github(
国外免费,但
网速特别慢
)
、
gitlab
(私有仓库,企业内部使用)。
gitee
的网址
:
https://gitee.com
需要注册账号,并登录。
2.5.2
配置
gitee
的
ssh
的密钥
gitee
支持
http
和
ssh
两个协议,
http
协议每次使用时,都需要手动输入用户名和口令,比较烦。可
以使用
ssh
协议,
ssh
协议支持公钥与私钥实现免密。
在
gitbash
的窗口中,生成公钥与私钥
ssh-keygen
查看公钥:
cat ~/.ssh/id_rsa.pub
复制公钥内容
打开
gitee
网页,点击用户头像的下三角图标:
选择
账号设置
菜单
,
在设置页面,从左边菜单找到
SSH
公钥
,点击之后,打开公钥设置界面,填写公钥名
称和内容
确认信息之后,点击【确定】
2.5.3
创建仓库
点击用户头像左边的
+
图标,在弹出的子菜单中选择
新建仓库
,在打开页面,输入仓库的名称及介绍即
可点击【创建】按钮。
2.5.4
本地仓库上传
将本地仓库上传到
gitee
的远程仓库上:
I.
首次上传
先将远程仓库的位置(
ssh
仓库位置)添加到本地仓库的配置中,然后再上传,上 传时必须带
-
u <
远程仓库的名称
> <
分支名称
git remote add origin git@gitee.com:disenQF/testgit2302.git
git push -u origin "master"
origin
是远程仓库的名称,
master
是远程仓库的分支名(默认的主分支名)。
II.
再次上传
git push
III.
强制上传
远程仓库的代码完全由本地仓库的代码替换
git push -u --force origin master
2.5.5
远程仓库下载
I.
首次下载
通过克隆的方式下载的远程仓库
git clone git@gitee.com:disenQF/testgit2302.git
II.
从远程仓库更新本地仓库
git pull
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/神奇cpp/article/detail/762573
推荐阅读
article
Agile
Software
Development
...
Individuals and interactions over processes and tools.(个人和协作...
赞
踩
article
关系
型
数据库
与
非
关系
型
数据库
Nosql
区别汇总_
关系
型
数据库
和
非
关系
型
数据库
的
区别...
目录
关系
型
数据库
与
非
关系
型
数据库
详细比较
关系
型
数据库
与
非
关系
型
数据库
优缺点对比关于
Nosql
1.
Nosql
2.
Nosql
...
赞
踩
article
如何
运行
开源
的
安卓
项目
?...
第一步:进入github
开源
安卓
项目
中,点击clone第二步:打开android studio,选择checkout从G...
赞
踩
article
【EI
会议
征稿通知】
2024
第三届云
计算
、大
数据
应用
与
软件工程
国际学术
会议
(
CBASE
2024
)...
为推动大
数据
时代的云
计算
与
软件工程
的发展,促进该领域学术交流,在
CBASE
连续两届成功举办的基础上,由浙江水利水电学院...
赞
踩
article
打开
Mac
OSX
原生
的
NTFS
功能...
转载自:http://www.tianwaihome.com/2014/07/mac-osx-ntfs.html打开Ma...
赞
踩
article
2
0
2
1
04
美团
优选
2
-
1
算法_
美团
优选
输入输出
...
字符串数字相加,输出字符串。代码:public class Test3
2
{ public static void ma...
赞
踩
article
adb
如何打印
kernel
输出
log
_
adb
kernel
log
...
https://www.jianshu.com/p/9b657c3c3560https://www.jianshu.co...
赞
踩
article
python
正则表达式
提取
网页
文字_
正则表达式
获取
网页
文本
...
python
正则表达式
提取
网页
文字_
正则表达式
获取
网页
文本
正则表达式
获取
网页
文本
示例...
赞
踩
article
高等数学
中
微分方程
的
种类及其
解法
_
高阶
可分离
微分方程
三中类型...
高等数学
中
微分方程
的
种类及其
解法
_
高阶
可分离
微分方程
三中类型
高阶
可分离
微分方程
三中类型 ...
赞
踩
article
操作系统
面试
篇一...
通过以下四点可以概括
操作系统
到底是什么:
操作系统
(Operating System,简称 OS)是管理计算机硬件与软件资...
赞
踩
article
TABLE
function
s_
table
function
和
spreadsheets
...
TABLE
FUNCTION CDS ABAP HANA_
table
function
和
spreadsheets
tabl...
赞
踩
article
案例分享:
高科技
企业
产品
管理
部门
设置
和
产品
经理
岗位
设置
...
产品
部门
的
部门
经理
对
产品
也非常了解,与客户接触较多,对客户需求相对比较了解,其中部分人员具有良好的市场意识。经过一年时间...
赞
踩
article
苹果电脑
如何
读写
ntfs
格式磁盘...
2019独角兽企业重金招聘Python工程师标准>>> ..._
苹果电脑
如何
读写
ntfs
格式移动...
赞
踩
article
Dlib
-
笑脸
识别_
dlib
笑脸
识别...
Python 3 利用
Dlib
和 sklearn 人脸
笑脸
检测机器学习建模 0. 引言 利用机器学...
赞
踩
article
【
VMware
虚拟
机
中
ubuntu
系列】—— 在
虚拟
机
中
使用
本
机
摄像头
的详细教程与
常见问题
分析及解决...
通过配置
虚拟
机
调用本
机
摄像头
,用户可以在
虚拟
机
中直接
使用
摄像头
设备,而不需要额外安装虚拟
摄像头
设备或者其他插件。这种方法...
赞
踩
article
华为
OD
机考(
HJ16
购物单
)...
应广大同学要求,开始以
OD
机考题作为练习题,看看算法和数据结构掌握情况。有需要练习的可以关注下。
华为
OD
机考(
HJ16
...
赞
踩
article
RabbitMQ
认知篇 -
优先级
队列
_
rabbitmq
优先级
...
本文介绍
RabbitMQ
的
优先级
队列
_
rabbitmq
优先级
rabbitmq
优先级
...
赞
踩
article
Dive
into
Deep
Learning笔记——上_
into
deeplearn
...
by李沐课程_
into
deeplearn
into
deeplearn
...
赞
踩
article
系统
架构
08 -
信息安全
(上)
_
软件
架构
信息安全
...
软考
系统
架构
-
信息安全
相关
_
软件
架构
信息安全
软件
架构
信息安全
...
赞
踩
article
答题
小
程序
功能
细节揭秘:如何提升
用户
体验和满足
用户
需求?...
通过题库随机打乱
功能
、多选有序题型、九宫格多选有序题型以及题库批量导入
功能
等细节设计,
答题
小
程序
不仅能够增强
答题
的趣味性...
赞
踩
相关标签
敏捷流程
非关系型数据库
数据库
关系型数据库
移动开发
git
云计算
大数据
人工智能
图像处理
信号处理
软件工程
能源
java
算法
python
正则表达式
开发语言
高等数学
微分方程
考研
面试
操作系统
servlet