Git简单使用和理解

请添加图片描述
workspace: 本地的工作目录。
index/stage:暂存区域,临时保存本地改动。
local repository: 本地仓库,只想最后一次提交HEAD。
remote repository:远程仓库。
对于Git,首先应该明白第一git是一种分布式版本控制系统,最先进的,所以,并不要一上来就想与远程仓库github关联,这样会对理解造成偏差。
初始化
GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

makdir 文件名//创建一个文件
git init //创建git管理   ls-a 
git clone /path/to/repository //克隆到本地仓库git config --global user.email "you@example.com" //配置email
git config --global user.name "Name" //配置用户名

配置 git config --global user.email 和 git config --global user.name 是为了在你提交代码时标识你的身份。每次你提交代码到 Git 仓库时,Git 都会记录提交者的用户名和邮箱地址。

基本操作

git add <file> //文件添加 提交到暂存区
git add . // 所有文件添加
git commit -m "代码提交信息" //暂存区的文件提交
git commit --amend //与上次commit合并git push origin master //推送至master分支
git pull //更新本地仓库至最新改动
git fetch //抓取远程仓库更新git log //查看提交记录
git status //查看修改状态git diff//查看详细修改内容
git show//显示某次提交的内容

回退版本
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD指向改变。

git reset --hard HEAD^ //回退到上一个版本
git log //查看提交记录
git reset --hard 1094a//回退到指定的由git log 查看到1094a的版本
git reflog //查看命令历史,回到未来

HEAD指向的版本就是当前版本,
因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
撤销修改

git checkout -- readme.txt //丢弃工作区的修改
git reset HEAD <file> //把暂存区的修改撤销掉,重新放回工作区

删除文件
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

rm test.txt
git rm test.txt//从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
git commit

添加远程仓库

git remote add origin git@github.com:yourname/learngit.git//添加后,远程库的名字就是origin
git remote -v //查看当前关联的远程库
git remote rm origin//解除本地与远程库绑定
git push -u origin master //把本地库的所有内容推送到远程库上
git push origin master //把本地master分支的最新修改推送至GitHub

创建分支与合并
切换分支这个动作,用switch更科学。因此,最新版本的Git提供了新的git switch命令来切换分支

git branch dev //创建
git checkout dev //切换
git checkout -b dev //创建dev分支,然后切换到dev分支
git branch //查看当前分支 git branch命令会列出所有分支,当前分支前面会标一个*号。
//切换到当前分支之后,就可以在当前分支上添加,提交
git merge dev//切换到master,使用该命令 dev分支的工作成果合并到master分支上
git branch -d dev//删除dev分支

解决冲突

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph命令可以看到分支合并图。

分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。下面我们实战一下--no-ff方式的git merge

git merge --no-ff -m "merge with no-ff" dev //准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward

请添加图片描述
bug分支
https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136

标签管理

git tag v1.0//创建标签
git tag//查看所有标签
git tag v0.9 f52c633 //找到对应的commit id git tag -d v0.1//删除标签
git push origin <tagname> //推送某个标签到远程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后仿真中 module path polarity 问题

目录 一 未知极性 二 正极性 三 负极性 不知道大家有没有遇到这个问题:什么?我们知道的module path delay 指的是定义在specify...endspecify block 中的语句,指示输入-输出的延迟信息。 这里的module path 竟然还有极性问题,今天,来学习一下。 模块路径的极性是一…

FreeBSD服务器监控:核心指标解读与应用建议(Telnet)

随着企业IT环境的日益复杂&#xff0c;对服务器性能和稳定性的监控变得至关重要。特别是针对FreeBSD这类广泛应用的服务器操作系统&#xff0c;进行高效的监控和管理更是运维团队的核心任务。本文将针对监控易中FreeBSD服务器的核心监控指标进行解读&#xff0c;并提供相应的应…

用RNN构建人名分类器

目录 项目综述1.导入必备的工具包2.处理数据&#xff0c;满足训练要求2.1 统计常用的字符2.2 进行规范化处理,去除重音符号2.3 将文件读取到内存中2.4 构建人名国家和具体人名的对应关系2.5 one-hot编码 3.构建RNN模型3.1 构建传统RNN模型3.2 构建传统LSTM模型3.3 构建传统GRU模…

永久免费设备日志采集工具

免费试用下载: Gitee下载 最新版本 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.

openeuler一个服务异常占用cpu的排查过程

1 环境 硬件环境&#xff1a;LS1046A arm64 系统环境&#xff1a;openEuler release 22.03 (LTS-SP1) Linux kernel 4.19.26 2 问题说明 我的硬件平台需要适配一下 openEuler release 22.03 (LTS-SP1) 但是目前只能使用原来硬件平台的内核&#xff0c;在适配的过程中…

LLM大语言模型应用方案之RAG检索增强生成的实现步骤。

0.我理解的RAG 什么是RAG&#xff1f; RAG的全称是“检索增强生成模型”&#xff08;Retrieval-Augmented Generation&#xff09;。这是一种特别聪明的大语言模型。 RAG是怎么工作的呢&#xff1f; 1.检索&#xff1a;当你问RAG一个问题时&#xff0c;它会先去“图书…

aardio - 【库】lock 跨进程读写锁

import win.ui; /*DSG{{*/ var winform win.form(text"aardio form";right272;bottom203;topmost1) winform.add( button{cls"button";text"无锁演示";left27;top132;right120;bottom184;z2}; button2{cls"button";text"有锁演示…

正确使用 QSqlDatabase 与 QSqlQuery 的方法

前言 在使用 Qt 的数据库模块时&#xff0c;许多人可能会对 QSqlDatabase 和 QSqlQuery 的使用方法感到困惑。本文将对这一话题进行详细讨论&#xff0c;并提供一些最佳实践。 基本使用示例 首先&#xff0c;让我们看看以下代码片段&#xff1a; {QSqlDatabase db QSqlDat…

Redis的实战常用一、验证码登录(解决session共享问题)(思路、意识)

一、基于session实现登录功能 第一步&#xff1a;发送验证码&#xff1a; 用户在提交手机号后&#xff0c;会校验手机号是否合法&#xff1a; 如果不合法&#xff0c;则要求用户重新输入手机号如果手机号合法&#xff0c;后台此时生成对应的验证码&#xff0c;同时将验证码进行…

前端路线指导(4):前端春招秋招经验分享

春招/秋招经验分享(前端) 哈喽大家好&#xff0c;我是小粉&#xff0c;双一流本科&#xff0c;自学前端一年&#xff0c;收获腾讯&#xff0c;字节等多家大厂offer&#xff0c;一半以上ssp~ 今天给大家分享一下我的春招&#xff08;暑期实习&#xff09;、秋招经历&#xff0c;…

【Gradio】如何设置 Gradio 数据框的样式

简介 数据可视化是数据分析和机器学习的关键方面。Gradio DataFrame 组件是一种流行的方式&#xff0c;在网络应用程序中显示表格数据&#xff08;特别是以 pandas DataFrame 对象的形式&#xff09;。 本文将探讨 Gradio 的最新增强功能&#xff0c;这些功能允许用户整合 pand…

Linux下静态IP地址的配置

Linux下一切皆文件!必然通过修改配置文件生效&#xff01; 1.方法1&#xff1a;直接修改网卡配置文件 配置静态IP地址 [rootheima ~]# cd /etc/sysconfig/network-scripts/ [rootheima network-scripts]# ls ifcfg-ens160 [rootheima network-scripts]# cat ifcfg-ens160 TY…

Spring的启动扩展点机制详解

在Java的世界中&#xff0c;我们知道Spring是当下最主流的开发框架&#xff0c;没有之一。而在使用Dubbo、Mybatis等开源框架时&#xff0c;我们发现可以采用和Spring完全一样的使用方式来使用它们。 可能你在平时的使用过程中并没有意识到这一点&#xff0c;但仔细想一想&…

飞机大战java

"飞机大战"是一种经典的射击游戏&#xff0c;通常在各种平台上都有实现&#xff0c;包括Java。如果你想要开发一个Java版本的飞机大战游戏&#xff0c;你可能需要考虑以下几个方面&#xff1a; 游戏设计&#xff1a;确定游戏的基本规则&#xff0c;比如玩家控制的飞机…

代码随想录第四十五天打卡

198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍_哔哩哔哩_bilibili 代码随想录 class Solution { public:int rob(vector<int>& nums) {vector<vector<int>>dp(nums.size(),ve…

通用大模型VS垂直大模型

通用大模型VS垂直大模型&#xff0c;你更青睐哪一方&#xff1f; 在当前AI大模型的竞争环境中&#xff0c;通用大模型和垂直大模型各有其独特的优势和挑战&#xff0c;选择哪一方更有前景需要考虑多方面因素。 通用大模型的优势与挑战 通用大模型如GPT-3、BERT等在自然语言处理…

解决js打开新页面百度网盘显示不存在方法:啊哦,你所访问的页面不存在了。

用js打开新页面open或window.location.href打开百度网盘后都显示&#xff1a;啊哦&#xff0c;你所访问的页面不存在了。 window.open(baidu_url); window.location.href baidu_url;在浏览器上&#xff0c;回车后网盘资源是可以打开的&#xff0c;刷新也是打开的。这是很奇怪…

深入分析并可视化城市轨道数据

介绍 中国城市化进程加速中&#xff0c;城市轨道交通的迅速扩张成为提升城市运行效率和居民生活品质的关键。这一网络从少数大城市延伸至众多大中型城市&#xff0c;映射了经济飞跃和城市管理现代化。深入分析并可视化城市轨道数据&#xff0c;对于揭示网络特性、评估效率、理…

进程、线程的区别

进程、线程的关系 开工厂生产手机&#xff0c;制作一条生产线&#xff0c;这个生产线上有很多的器件以及材料。一条生产线就是一个进程。 只有生产线是不够的&#xff0c;使用找五个工人来进行生产&#xff0c;这个工人能够利用这些材料最终一步步的将手机做出来&#xff0c;这…

Ansible 自动化运维实践

随着 IT 基础设施的复杂性不断增加&#xff0c;手动运维已无法满足现代企业对高效、可靠的 IT 运维需求。Ansible 作为一款开源的自动化运维工具&#xff0c;通过简洁易用的 YAML 语法和无代理&#xff08;agentless&#xff09;架构&#xff0c;极大简化了系统配置管理、应用部…