代码版本管理工具 git

news/2024/5/18 12:16:43

1. 去B站看视频学习,只看前39集:

01-Git概述(Git历史)_哔哩哔哩_bilibili

2.学习Linux系统文本编辑器的使用

vi编辑器操作指令分享 (baidu.com)

(13条消息) nano编辑器的使用_SudekiMing的博客-CSDN博客

windows下载安装
Git官方下载地址:
Git - Downloading Package
安装图解:
https://www.cnblogs.com/ximiaomiao/p/7140456.html
linux下载安装
sudo apt install git
windowsgit命令与Linux一致

git 的命令

git init    初始化仓库

git clone  https://        克隆仓库

git status   查看仓库状态

git add <file/name>            添加文件到暂存区

git commit -m "文件信息"   提交更改的文件到仓库

git rm <file_name>  删除文件,然后提交,版本仓库的也删除了

git config --list  查看用户名和邮箱 

git checkout -b <分支名>   #创建新的分支
git branch                #查看分支
git rm -r --cached <文件名>  # 删除远程文件或者文件夹子
git push origin --delete <分支名> #删除远程分支
git branch -d <分支名>     # 删除本地分支
git remote -v               #显示远程仓库
git merge <分支名>         # 合并分支
git pull                  # 拉取, 一般两个人同时对一个分支进行修改后,如果别人先提交的,则需要拉取下来在本地解决冲突后合并
git rebase                #变基  
git log                   #查看历史提交
git checkout <commit 序列> #回退到历史版本  
git reflog                # 记录每一次的命令
git branch <新分支名> <序列号>  #如果回退到历史版本后更改代码了,想再次提交,则可切换到最新版本, 然后用该命令行创建新的分支

仓库

查看文件的状态 git status 

把文件添加到暂存区   git add <file_name>    取消添加      git reset <file_name>

提交到本地仓库      git commit  -m ""

修改的文件想要提交到仓库,必须先要添加到暂存区

git commit -a -m ""  添加到暂存区并提交到仓库

文件加入到忽略列表,不需要版本管理。创建.gitignore文件,列出要忽略的文件后缀  命令: touch .gitignore

查看远程仓库     git remote

新建的本地仓库需要关联远程仓库,才能Push ,可以关联多个远程仓库

关联远程仓库    git remote add origin < https://> 

克隆仓库会把历史版本和日志信息一起复制下来

git remote rm  从本地移除远程仓库的记录

fetch抓取   pull拉取    merge合并

git fetch  origin master从远程仓库获取最新版本到本地仓库,不会自动merge ,需要手动合并到工作区,git merge  origin  master

git pull origin master  从远程仓库获取最新版本并merge到本地仓库,

如果本地仓库不是克隆来的,并且存在文件,会报错,需要加参数: git pull origin master --allow-unrelated-histories

git push origin master 将本地仓库推送到远程仓库

分支

查看分支

列出所有分支  git branch -a

列出所有本地分支  git branch 

列出所有远程分支  git branch -r

创建分支 

git branch <name>

以当前分支为基础创建的,所以一般在主分支创建新分支

切换分支 git checkout <name>

推送新分支到远程仓库 git push origin <name>

合并分支

进入主分支执行git merge <name>

两分支合并,对于同一个文件不同的修改,会报错,需要自己去修改文件, 然后 git add <修改的文件名>, 说明已解决冲突 ,然后提交到本地仓库,最后推送分支到远程仓库

在合并改动之前,可以使用如下命令预览两个分支的差异:

git diff <source_branch> <target_branch>

删除本地分支

git branch -d <name>      ,   强制删除: git branch -D <name>  ,不建议

删除远程仓库分支  git push origin -d <name>

标签

标签常用做版本名 标识

git tag <name> 创建标签

git tag 列出所有标签

git show <name> 查看标签信息

git push origin <name>  推送标签到远程仓库

git tag -d [tag] 删除本地标签

git push origin :refs/tags/[tag]

检出标签 :新建一个分支,指向某个tag, 这个分支就以那个版本为基础,

命令: git checkout -b [branch] [tag] 

在ubuntu 代码版本管理流程

 第一步:

安装git命令

sudo apt-get install git

指定用户名和邮箱 

如果是私人电脑,用你名字的拼音作为user.name ,你的邮箱作为user.email

如果是公用小电脑,用feihu作为user.name ,用123456@jqr 作为user.email

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@domain.com"

然后到代码工作区里执行命令 git init 初始化本地仓库,如果有了.git就不用执行

(如果看不到.git,按Ctrl + H 显示隐藏的文件 )

git remote 查看远程仓库,没有origin的话就添加远程仓库:  git remote add origin <https://gitee.com/用户名/仓库名/树/分支>  进行关联

第二步:

 在开发过程中,同分支上如果别人对远程仓库的代码进行了修改。我们就可以使用git pull拉取远程代码,就可以将别人最新修改的代码同步到我们的本地工作区。

git pull origin master  --allow-unrelated-histories  拉取master分支的最新版本到本地

写代码,修改代码

git add .    把所有的文件添加到暂存区

git commit -m "信息"  

信息的写法:对哪个文件进行了操作,需要注意什么

或者一个命令完成:  git commit -a -m "信息"      添加到暂存区并提交到仓库

git push origin master 将本地仓库推送到远程仓库

输入你的git邮箱和密码

如果嫌每次输入git账号和密码麻烦,设置保存密码。如,将账号密码保存 30 分钟

git config --global credential.helper 'cache --timeout=1800'

注意问题

 假如你新建了一个远程仓库,里面只有README.md文件,这时你在本地仓库想推送代码到远程仓库,就会报上面的错,因为远程仓库含有本地仓库不存在的文件,推送的话可能会覆盖掉远程仓库的文件。解决方法:

1.先同步git/github上的文件到本地,在本地更改将内容进行合并后再上传,依次执行下面命令:

git pull origin master  --allow-unrelated-histories  拉取文件并合并到本地

如果本地仓库不是克隆来的,并且存在文件,会报错,需要加参数: git pull origin master --allow-unrelated-histories
git push origin master  推送

2.强行推送(不建议)

 git push -u origin +master

强行上传会覆盖掉远程仓库的文件,不到万不得已不用

如果远程仓库的代码被别人修改过而你在修改本地代码前没有pull拉取最新的,会导致代码版本不一样,这时候会提交失败,可以 git push --force origin 分支名,这样会本地代码强制覆盖远程仓库代码(会覆盖掉别人的修改),所以每次更改代码前最好pull一下。如果远程没有这个分支,会在远程仓库新建一个。不建议强行覆盖,如果要强行覆盖,先问问你团队的人。

回溯操作:如果你pull代码后发现你的代码被其他人误操作了,可以git reset --hard HEAD^,使本地仓库当前分支回退到上一次提交的状态,回退前记得切换到相应分支。而HEAD^^表示上上次的状态,HEAD~100表示上100次的状态。也可以把HEAD换成上一步中log里的commit的序列号。

如果代码有大改,记得推送一个版本标签,方便维护版本

git tag <name> 创建标签 v1.0

git push origin <name>  推送标签到远程仓库

调试:

未完待续...

下载开源代码注意:

先查看有多少分支

git clone https://...  只会克隆 默认分支

 克隆所有分支,用下面命令

git clone --mirror   https://...

或者: 

git pull --all  https://...

github加速:

github在国内访问是非常慢的,有时候克隆个项目都失败,git clone加速方法

1. 在执行git clone之前,执行命令:

git config --global url."https://ghproxy.com/".insteadOf https://


向git全局环境增加一个替换设置,它会自动给github的链接前面增加ghproxy.com的加速链接,从而实现快速克隆项目的目标。
第二种方式配置文件法(推荐)
在 ~/.git /config 中增加如下配置即可加速,git对Github的访问

……前面的七七八八内容不用管[url "https://ghproxy.com/https://github.com/"]insteadOf = https://github.com/

(13条消息) 【git】大文件git clone不下来问题_git大文件拉不下来_xll_bit的博客-CSDN博客

Git简介 - 廖雪峰的官方网站 (liaoxuefeng.com)


http://www.mrgr.cn/p/22372887

相关文章

使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【C++】开源:Boost网络库Asio配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Asio网络库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次…

小程序----配置原生内置编译插件支持sass

修改project.config.json配置文件 在 project.config.json 文件中&#xff0c;修改setting 下的 useCompilerPlugins 字段为 ["sass"]&#xff0c; 即可开启工具内置的 sass 编译插件。 目前支持三个编译插件&#xff1a;typescript、less、sass 修改之后可以将原.w…

GNSS技术知识你知道多少?这些你或许还未掌握

GNSS信号频段 GNSS频谱图展示了不同的GNSS信号及其星座、载波频率、调制方案&#xff0c;以及所有这些信号在同一L波段频段内如何相互关联&#xff0c;是GNSS专业人员的必备工具&#xff0c;包括设计和开发GNSS系统的工程师&#xff0c;以及测试GNSS系统的工程师。 GNSS术语 …

基于深度学习的高精度课堂人脸检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度课堂人脸检测系统可用于日常生活中或野外来检测与定位课堂人脸目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的课堂人脸目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标…

shopee,lazada,etsy店群如何高效安全的管理

对于电商卖家来说&#xff0c;要经营多个店铺&#xff0c;管理多个账号是非常常见的操作。为了避免账号关联被平台识别出来&#xff0c;需要使用防关联的浏览器来进行操作 ​1、支持多平台 支持同时管理多个电商平台店铺&#xff0c;Shopee、Lazada、etsy、poshmark、vinted等&…

网络安全(黑客)自学——从0开始

为什么学习黑客知识&#xff1f;有的人是为了耍酷&#xff0c;有的人是为了攻击&#xff0c;更多的人是为了防御。我觉得所有人都应该了解一些安全知识&#xff0c;了解基本的进攻原理。这样才可以更好的保护自己。这也是这系列文章的初衷。让大家了解基本的进攻与防御。 一、怎…

Redis学习路线(6)—— Redis的分布式锁

一、分布式锁的模型 &#xff08;一&#xff09;悲观锁&#xff1a; 认为线程安全问题一定会发生&#xff0c;因此在操作数据之前先获取锁&#xff0c;确保线程串行执行。例如Synchronized、Lock都属于悲观锁。 优点&#xff1a; 简单粗暴缺点&#xff1a; 性能略低 &#x…

2024届IC秋招兆易创新数字IC后端笔试面试题

数字IC后端实现PR阶段设计导入需要哪些文件&#xff1f; 设计导入需要的文件如下图所示。这个必须熟练掌握。只要做过后端训练营项目的&#xff0c;对这个肯定是比较熟悉的。大家还要知道每个input文件的作用是什么。 在吾爱IC后端训练营Cortexa7core项目中&#xff0c;你认为…

uniapp 语音文本播报功能

最近uniapp项目上遇到一个需求 就是在接口调用成功的时候加上语音播报 &#xff0c; ‘创建成功’ ‘开始成功’ ‘结束成功’ 之类的。 因为是固定的文本 &#xff0c;所以我先利用工具生成了 文本语音mp3文件&#xff0c;放入项目中&#xff0c;直接用就好了。 这里用到的工…

java快速生成数据库表文档(HTML、DOC、MD)

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出&#xff0c;关于数据库表结构文档状态&#xff1a;要么没有、要么有、但都是手写、后期运维开发&#xff0c;需要手动进行维护到文档中&#xff0c;很是繁琐&#xff0c;这里推荐一个开源项目&#xff1a;screw gi…

大促之前全链路压测监控

1. skywalking服务监控 1.1 skywalking简介 Skywalking 是一个APM系统&#xff0c;即应用性能监控系统&#xff0c;为微服务架构和云原生架构系统设计 它通过探针自动收集所需的指标&#xff0c;并进行分布式追踪&#xff0c;通过这些调用链路以及指标&#xff0c;Skywalking …

VMware搭建Hadoop集群 for Windows(完整详细,实测可用)

目录 一、VMware 虚拟机安装 &#xff08;1&#xff09;虚拟机创建及配置 &#xff08;2&#xff09;创建工作文件夹 二、克隆虚拟机 三、配置虚拟机的网络 &#xff08;1&#xff09;虚拟网络配置 &#xff08;2&#xff09;配置虚拟机 主机名 &#xff08;3&#xf…

1.Flink概述

1.1 技术架构 应用框架层: 在API层之上构建的满足特定应用场景的计算框架&#xff0c;总体上分为流计算和批处理两类应用框架。API 层&#xff1a; Flink对外提供能力的接口 &#xff0c;实现了面向流计算的DataStream API和面向批处理的DataSet API。运行时层&#xff1a;Flin…

golang waitgroup

案例 WaitGroup 可以解决一个 goroutine 等待多个 goroutine 同时结束的场景&#xff0c;这个比较常见的场景就是例如 后端 worker 启动了多个消费者干活&#xff0c;还有爬虫并发爬取数据&#xff0c;多线程下载等等。 我们这里模拟一个 worker 的例子 package mainimport (…

振弦采集仪完整链条的岩土工程隧道安全监测

振弦采集仪完整链条的岩土工程隧道安全监测 隧道工程是一种特殊的地下工程&#xff0c;其建设过程及运行期间&#xff0c;都受到各种内外力的作用&#xff0c;如水压、地震、地质变形、交通荷载等&#xff0c;这些因素都会对隧道的安全性产生影响。因此&#xff0c;对隧道的安…

机器学习-Gradient Descent

机器学习(Gradient Descent) videopptblog 梯度下降(Gradient Descent) optimization problem: 损失函数最小化 假设本模型有两个参数&#x1d703;1和&#x1d703;2&#xff0c;随机取得初始值 求解偏微分&#xff0c;梯度下降对参数进行更新 Visualize: 确定梯度方向&…

强化学习QLearning 进行迷宫游戏和代码

强化学习是机器学习里面的一个分支。它强调基于环境而探索行动、学习&#xff0c;以取得最大化的预期收益。其灵感来源于心理学中的行为主义理论&#xff0c;既有机体如何在环境给予的奖励或者惩罚的刺激下&#xff0c;逐步形成对刺激的预期&#xff0c;产生能够最大利益的习惯…

七、Kafka源码分析之网络通信

1、生产者网络设计 架构设计图 2、生产者消息缓存机制 1、RecordAccumulator 将消息缓存到RecordAccumulator收集器中, 最后判断是否要发送。这个加入消息收集器&#xff0c;首先得从 Deque 里找到自己的目标分区&#xff0c;如果没有就新建一个批量消息 Deque 加进入 2、消…

【网络安全带你练爬虫-100练】第15练:模拟用户登录

目录 一、目标1&#xff1a;理清逻辑 二、目标2&#xff1a;将每一步用代码进行表示 三、网络安全O 一、目标1&#xff1a;理清逻辑 模拟登录的基本流程 1、进入入口程序 2、读取目标URL 3、请求加上线程 4、确定请求数据包 5、请求格式的确认 6、数据的处理与判断 二、目标…