GIT基础常用命令-1 GIT基础篇
git基础常用命令-1 GIT基础篇
- 1.git简介及配置
- 1.1 git简介
- 1.2 git配置config
- 1.2.1 查看配置git config
- 1.2.2 配置设置
- 1.2.3 获取帮助git help
- 2 GIT基础常用命令
- 2.1 获取镜像仓库
- 2.1.1 git init
- 2.1.2 git clone
- 2.2 本地仓库常用命令
- 2.2.1 git status
- 2.2.2 git add
- 2.2.3 git diff
- 2.2.4 git commit
- 2.2.5移除文件 rm
- 2.2.6 git mv
- 2.2.7 git log
- 2.2.8 撤销操作
- 2.2.8.1 撤销操作 amend
- 2.2..8.2 撤销已暂存的文件git reset
- 2.2.8.3 撤销对文件的修改 git checkout
- 2.3 远程仓库常用命令
- 2.3.1 显示远程仓库 git remote
- 2.3.2 添加远程仓库 git remote add
- 2.3.3 从远程仓库获取和拉取 git fetch
- 2.3.4 将数据推送到远程仓库git push
- 2.3.5 检查远程仓库git remote show
- 2.3.6 删除和重命名远程仓库 git remote rename/rm
- 2.4 标记
- 2.4.1 列举标签git tag
- 2.4.2 创建标签git tag
- 2.4.3 注释标签git tag -a -m,查看标签
- 2.4.4 轻量标签
- 2.4.5 补加标签
- 2.4.6 共享标签git push
- 2.4.7 检出标签
1.git简介及配置
以下是我实际学习过程中使用到的命令,手码不易,如果觉得好,希望可以点赞收藏;
1.1 git简介
git是一种分布式版本控制工具,客户端不仅要检出文件的最新快照,而且对代码仓库进行完整的镜像,相比于svn需要配置服务器,每次都是往服务器上添加或者下拉操作,如果svn的服务器宕机了,你就无法提交或者下拉,并且中央数据库所在的硬盘受损的话,就GAME OVER了,除了代码没了,而且各种操作记录都无了。但是GIT不会,你下拉到本地的代码,即使远程git服务器,任何一个客户端都可以使用自己的本地镜像来恢复服务器,因为他每一次的检出操作实际上都是对数据的一次完整备份,这才是分布式版本控制工具最屌的,也就是常说的高可用。通过GIT官网downloads就可以下载对应系统(mac、windows、linux/unix)的安装包,然后进行安装。
在git中,文件有三种状态,分别为:已提交(commited)、已修改(modified)和已暂存(staged),
- 已提交表示数据已经被安全的存入到本地数据库中,通常也就是git commit之后,就跟任务已经完成了;
- 已修改表示已经改动了文件,但是尚未提交到数据库,通常表示本地修改了文件,但是尚未执行 git add;
- 已暂存表示对已修改的文件的当前版本做出了标识并且将其加入到下一次要提交的快照中,通常也就是执行git add之后了,在下一次commit的时候会将暂存区的提交到本地仓库中;

1.2 git配置config
git可以全局配置,全局配置需要加上–global,也可以局部配置
1.2.1 查看配置git config
添加global就是查看全局,否则就是看当前git项目的配置(因为可能对应多个git远程分支,提代码的用户名密码都不一定都相同)
#1.查看<全局>所有配置
git config <--global> --list
#git config --global --list
#user.username=xxxx
#user.email=xxxx@qq.com
#user.name=desktop_xxxx
#credential.https://gitee.com.provider=generic#2.查看配置的key,比如user.username|user.password等
git config <--global> key
#git config --global user.username
#xxxx@qq.com
1.2.2 配置设置
git配置设置,可以设置config中key对应的value
#设置配置的key为value,git config user.username potato 就是将当前username设置为potato
git config <--global> key value
#git config --global user.name potato
#配置git默认编辑器为nodepad++
#git config <--global> core.editor "编辑器地址比如nodepad++" -multiInst
1.2.3 获取帮助git help
git可以通过三种方式获取帮助
git help <verb>
git <verb> --help
man git-<verb>
#git help config/clone/push 输入就会显示config或者clone或者push相关的帮助页面说明文档了
2 GIT基础常用命令
2.1 获取镜像仓库
建立GIT项目有两种方式:一种是把现有的项目或者目录导入到git中,第二种是从服务器上克隆(也是经常用的git clone)现有的git仓库。
2.1.1 git init
在现有的目录中初始化git仓库
#初始化,会在当前文件夹下面创建.git的子目录,里面包含了构成GIT仓库骨架的所有必须文件。
git init
#git init
#Initialized empty Git repository in D:/code/java_code/gittest/.git/
#添加文件到暂存区,跟踪新文件
git add xxx.xxx
#将暂存区文件提交到本地仓库,-m为给这次提交添加备注
git commit -m 'first commit'
2.1.2 git clone
克隆现有仓库
#从gitAddress处克隆项目
git clone gitAddress
2.2 本地仓库常用命令
2.2.1 git status
查看当前分支状态,最常用的命令
git status
git status -s 或者 git status --short
#对应状态有以下三种:
#Changes not staged for commit:已修改但是未添加到暂存区
#Changes to be committed:修改的文件已添加到暂存区,但是没有提交
#nothing to commit, working tree clean项目目录是干净的,也就是没有任何变更
2.2.2 git add
将xxx文件添加到暂存区,也就是将这个文件让GIT开始跟踪
git add xxx
2.2.3 git diff
查看已暂存和未暂存的变更
#多用于修改了但未add操作
git diff
#查看将暂存的马上与上一次的做对比,用于add了,但是未commit
git diff --staged
2.2.4 git commit
提交变更,将加入到暂存区的文件提交到本地仓库
#提交变更,备注为xxxx
git commit -m 'xxxx'
#直接跳过add,自动把已跟踪(执行过git add)的所有文件添加到暂存区,然后再提交,但是这个慎用
git commit -a -m 'xxxx'
2.2.5移除文件 rm
相当于git add的回退操作,并且该命令还会把文件从工作目录中一处,这样下一次你就不用在未追踪文件列表中看到这些文件了
如果直接把文件从工作目录中删除,会有Changes not staged for commit:,这个时候需要使用移除文件的命令,将文件的移除状态记录到暂存区
如果你更改了某个文件,并且已经加入到暂存区了,想要让GIT移除它就必须使用-f强制移除,这样做的目的是防止没有被记录到快照中的数据被意外移除而设立的按全特性,因为这样的数据被意外移除后无法由GIT恢复。
#用于没有添加到暂存区,但是工作目录是删除了的文件,从GIT中移除该文件
git rm xxx
#用于已添加到暂存区了,想要让GIT移除它就必须要强制移除
git rm -f xxx
#用于本地不删除,但是想让GIT不追踪,多用于本地配置文件,或者本地编译的文件,比如使用git rm -cached log/\*.log将日志哪个
git rm -cached xxx
2.2.6 git mv
git不会显示跟踪文件的移动,可以通过git mv来重命名文件,相当于
1.mv file_from file_to
2.git rm file_from
3.git add file_to
#将file_from文件重命名为file_to
git status file_from file_to
#git status
#On branch master
#Changes to be committed:#(use "git restore --staged <file>..." to unstage)#renamed: test.txt -> test2.txt
2.2.7 git log
很基础但是却很强大的命令,可以看历史的提交记录,可以说就是避锅找锅的必备了,你干了好事或者坏事,统统给你记录下来,想跑都跑不了的。可以看到我进行了两次提交的操作并且每次提交的-m备注都会显示出来,默认不加参数的话,git log会按照时间顺序列出仓库中的所有提交,其中最新的在最前面。
git log
#Author: potato <xxxx@qq.com>
#Date: Wed Mar 1 15:28:43 2023 +0800
#
# second commit
#
#commit 403a86106b79cf76f55b6b3693d2b4e0aef81b4f
#Author: potato <xxxx@qq.com>
#Date: Wed Mar 1 11:43:23 2023 +0800
#
# first commit
-p选项最常用,他会显示每次提交所引入的差异,后面加-num数字可以最近的两次提交,比如git log -p -2查看最近两次提交变更的内容
git log -p <-num>
–stat 用来查看简要的信息,比如改动的文件列表、共有多少文件被改动以及文件里由多少新增行或者删除行,并且最后输出总计信息
git log --stat
–pretty可以更改日志输出的默认格式,比如浏览大量提交时,参数可以设置以下几种:
oneline格式选项很有用,它可以在每一行中显示一个提交,short、full和fuller格式选项会分别比默认输出减少或者增加一些信息
git log --pretty=oneline
git log --pretty=format:"%h - %an, %ar : %s"
format格式选项如下:
| 格式选项 | 输出的格式描述 |
|---|---|
| %H | 提交对象的散列值 |
| %h | 提交对象的简短散列值 |
| %T | 树对象的散列值 |
| %t | 树对象的简短散列值 |
| %P | 父对象的散列值 |
| %p | 父对象的简短散列值 |
| %an | 作者的名字 |
| %ae | 作者的电子邮箱地址 |
| %ad | 创作日期(可使用-date=选项指定日期格式) |
| %ar | 相对于当前日期的创作日期 |
| %cn | 提交者的名字 |
| %ce | 提交者的提交者的电子邮箱地址 |
| %cd | 提交日期 |
| %cr | 相对于当前日期的提交日期 |
oneline和format这两个选项如果与log命令的另外一个选项–grap一起使用,就能够发挥更大的作用
#列举出最近两周内的所有提交,2008-01-15,2 years 1 day 3 minutes ago
git log --since=2.weeks
2.2.8 撤销操作
2.2.8.1 撤销操作 amend
假如刚提交了的,然后发现少提交了某个文件,可以执行add、commit --amend再次提交,实际只提交一次
git commit -m 'xxxx'
git add xxx
git commit --amend
2.2…8.2 撤销已暂存的文件git reset
假如分两次提交,但是使用add *还未进行commit的时候,将两次提交的都加入到了暂存区,可以使用
#将xxx文件移除到暂存区
git reset HEAD xxx
2.2.8.3 撤销对文件的修改 git checkout
假如你现在不需要对某个文件进行修改,或者你想要还原你的修改,可以使用checkout还原,但是一定要知道,这个命令不可恢复的。
git checkout --xxx
2.3 远程仓库常用命令
远程仓库是指在互联网或者其他网络上托管的项目版本仓库,比如本地的项目可以push到远程仓库,然后供他人使用。
2.3.1 显示远程仓库 git remote
该命令会列出每个远程仓库的简短名称。在某个仓库被克隆后,你至少可以看到名为origin的远程仓库,这是git给克隆源服务器取的默认名称,并且可以使用-v显示远程仓库对应的url
git remote [-v]
#origin [url]
2.3.2 添加远程仓库 git remote add
通过git remote add可以添加远程仓库,而shortname可以方便后续拉或者提代码,比如提代码的时候有个git push origin master,表示的就是往shortname为origin的远端分支,推送master分支的代码,默认关联的第一个远程分支的shortname为origin。
git remote add [shortname] [url]
2.3.3 从远程仓库获取和拉取 git fetch
上一小节已经说了可以通过shortname将远程分支做一个名称替换。那么可以通过git fetch 方式拉去代码
git fetch [shortname]
2.3.4 将数据推送到远程仓库git push
当本地开发已完成之后,需要将代码提交到远程仓库,但是前提是,必须拥有远程仓库有的写权限
git push [shortname] [branchname]
#git push origin master
2.3.5 检查远程仓库git remote show
如果想要查看远程仓库的更多信息,可以使用git remote show进行查看,可以看到远程仓库的地址,以及远程分支的跟踪情况,并且可以看到当前本地分支执行pull和push会对应推送到远程仓库的哪个分支上。
git remote show [shortname]
#git remote show origin
2.3.6 删除和重命名远程仓库 git remote rename/rm
可以使用rename来重命名远程分支的shortname,并且可以使用rm来删除掉远程仓库的关联
git remote rename [shortname_bf] [shortname_af]
#将远程仓库的简短名称origin重命名为test
#git remote rename orgin test
git remote rm [shortname]
#将简短名称为origin的远程仓库进行删除操作
#git remote rm origin
2.4 标记
可以通过git tag可以把特定的历史版本标记为重要版本。标签有两种,一种轻量的标签(lightweight),一种注释标签(annotated)
轻量标签
2.4.1 列举标签git tag
git tag
2.4.2 创建标签git tag
git tag xxx
2.4.3 注释标签git tag -a -m,查看标签
git tag -a可以创建标签,-m是添加注释,并且使用git show可以查看当前标签数据以及对应
git tag -a v1.0 -m 'my wokr version 1.0'
git show v1.0
2.4.4 轻量标签
使用git tag来把提交的校验和保存到文件中
2.4.5 补加标签
通过git log+git tag可以补加标签
git log
git tag -a 分支hash
2.4.6 共享标签git push
默认情况下,git push不会把标签传输到远程服务器上,但是创建了标签之后,必须明确的将标签推送到共享服务器上
git push origin [tagname]
#一次性推送多个标签,会把服务器上还没有的标签都推送过去
git push origin --tags
2.4.7 检出标签
你无法在git上真正检出一个标签的,因为标签无法移动。如果想把某个版本的仓库放入像是标签的工作目录中,可以使用
git checkout -b [branchname] [tagname]
在特定标签上创建一个新的分支
相关文章:
GIT基础常用命令-1 GIT基础篇
git基础常用命令-1 GIT基础篇1.git简介及配置1.1 git简介1.2 git配置config1.2.1 查看配置git config1.2.2 配置设置1.2.3 获取帮助git help2 GIT基础常用命令2.1 获取镜像仓库2.1.1 git init2.1.2 git clone2.2 本地仓库常用命令2.2.1 git status2.2.2 git add2.2.3 git diff2…...
华为OD机试题,用 Java 解【数列描述】问题
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...
2022掉队的“蔚小理”,按下了兔年加速键
配图来自Canva可画 进入2023年,各大车企又展开了新一轮的“竞速”。尽管1月份汽车整体销量出现了“阴跌”,但从各路车企发布的销量目标来看,车企对于2023依旧保持着较高的信心和预期。在一众车企中,以“蔚小理”为代表的新势力们…...
【NLP相关】attention的代码实现
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
凌恩生物资讯
凌恩生物转录组项目包含范围广,项目经验丰富,人均10年以上项目经验,其中全长转录组测序研究基因结构已经成为发文章的趋势,研究物种包括高粱、玉米、拟南芥、鸡、人和小鼠、毛竹、棉花等。凌恩生物提供专业的全长转录组测序及分析…...
Leetcode 148. 排序链表(二路归并)
题目: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 解法一: 递归解法,自顶向下 链表版二路归并排序(升序,递归版),稳定排序 时间复杂度…...
记录Paint部分常用的方法
Paint部分常用的方法1、实例化之后Paint的基本配置2、shader 和 ShadowLayer3、pathEffect4、maskFilter5、colorFilter6、xfermode1、实例化之后Paint的基本配置 Paint.Align Align指定drawText如何将其文本相对于[x,y]坐标进行对齐。默认为LEFTPaint.Cap Cap指定了笔画线和路…...
ArrayList集合底层原理
ArrayList集合底层原理ArrayList集合底层原理1.介绍2.底层实现3.构造方法3.1集合的属性4.扩容机制5.其他方法6.总结ArrayList集合底层原理 1.介绍 ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在 内的所有元素。 每个 Array…...
内网部署swagger快解析映射方案发布让外网访问
计算机业内人士对于swagger并不陌生, 不少人选择用swagger做为API接口文档管理。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法&#x…...
全网最全整理,自动化测试10种场景处理(超详细)解决方案都在这......
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 自动化工作流程 自动…...
【c++】指针的学习
指针是C中非常重要的概念,理解指针的使用可以使程序更高效,并且可以处理更加复杂的数据结构。 指针是一个变量,它存储了另一个变量的地址。通过指针访问这个变量可以提高程序的效率,尤其是在处理大型数据结构时。 在C中࿰…...
华为OD机试题,用 Java 解【水仙花数】问题
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...
【Linux】-- 基本指令
目录 用户管理 adduser passwd userdel pwd ls指令 -l -a -d -F -r -t -R -1 which alias ll ls -n cd cd - cd ~ touch -d stat mkdir -p rmdir rm -r -f man cp 编辑 -r -f mv cat -n tac more less -N head tail | 管道 dat…...
JavaScript 中的 String 类型 模板字面量定义字符串
ECMAScript 6新增了使用模板字面量定义字符串的能力。与使用单引号或双引号不同,模板字面量保留换行字符,可以跨行定义字符串: let str1 早起的年轻人\n喜欢经常跳步;let str2 早起的年轻人喜欢经常跳步;console.log(str1);// 早起的年轻人…...
我国防疫数据报告,2022年广东花费711亿,北京人均支出第一
哈喽大家好,2023年已经过去一段时间了,随着防疫策略的调整,小伙伴们是不是开始到处旅行购物了呢?当然了,对于自身的健康情况小伙伴们还是要多多关注,不要松懈。随着春节过后有序复工复产,各地纷…...
OpenCV-Python学习(22)—— OpenCV 视频读取与保存处理(cv.VideoCapture、cv.VideoWriter)
1. 学习目标 学习 OpenCV 的视频的编码格式 cv.VideoWriter_fourcc;学会使用 OpenCV 的视频读取函数 cv.VideoCapture;学会使用 OpenCV 的视频保存函数 cv.VideoWriter。 2. cv.VideoWriter_fourcc()常见的编码参数 2.1 参数说明 参数说明cv.VideoWr…...
2023-03-05力扣每日一题
链接: https://leetcode.cn/problems/triples-with-bitwise-and-equal-to-zero/ 题意: 模拟一个摩天轮,四个舱,每个舱最多四人,给一个数组,表示摩天轮每切换一次座舱会来多少人排队(人不会走…...
真正的IT技术男是什么样的?
我们经常会听到很多对IT男士的调侃称呼,“屌丝”、“宅男”,会逗的大家捧腹大笑。但是,大家要不要以为称呼IT男是“屌丝”、“宅男”,就当真以为他们是这样了。今天,青鸟学姐就带大家一起来了解一下,真正的…...
在函数中,用指针接收就可以改变相应的内容吗??
作者:小树苗渴望变成参天大树 作者宣言:认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! 我们在不管指针那篇博客,还是在函数那篇博客中,我都给大家讲解过…...
Java+ElasticSearch+Pytorch实现以图搜图
以图搜图,涉及两大功能:1、提取图像特征向量。2、相似向量检索。第一个功能我通过编写pytorch模型并在java端借助djl调用实现,第二个功能通过elasticsearch7.6.2的dense_vector、cosineSimilarity实现。一、准备模型创建demo.py,输…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
