git的使用

git使用

  • Git操作基本指令:
  • 分支操作:
  • 操作远程仓库:
  • 文件操作
    • 比较文件差异
    • 删除文件
    • 撤销文件
    • 重命名文件
  • 操作标签
  • SSH密钥
  • git错误示例
    • 1、git status(或任何其他git命令)然后会出现fatal: Not a git repository (or any of the parent directories)错误。
    • 2:error: Your local changes to the following files would be overwritten by merge: 错误:您对以下文件的本地更改将被merge覆盖:
    • 3、合并产生冲突

Git操作基本指令:

查看本地版本:git --version

设置用户签名:git config --global user.name 用户名

设置用户邮箱:git config --global user.email 邮箱

初始化本地库:git init

查看本地库状态:git status

添加到暂存区:git add 文件名

添加所有修改、已删除的文件到暂存区:git add -u 文件路径

添加所有修改、已删除、新增的文件到暂存区:git add -A 文件路径

查看所有修改、已删除但是没有提交的文件:git add -i 文件路径

提交到本地库:git commit -m “日志信息” 文件名

修改上次提交的描述信息:git commit --amend

不包括未被版本库跟踪的文件,等同于先调用了 “git add -u” :git commit -a

提交时显示所有diff信息:git commit -v

查看历史记录:git reflog

查看版本详细信息:git log

以图形化的方式显示提交历史的关系,这就可以方便地查看提交历史的分支信息,当然是控制台用字符画出来的图形:git log --graph

查看文件内容:cat 文件名

删除暂存区文件:git rm --cached 文件名

版本穿梭:git reset --hard 版本号(移动head指针指向)

分支操作:

查看分支:git branch -v

查看分支合并图:git log --graph

创建分支:git branch 分支名

创建分支与指定的远程分支建立追踪关系:git branch --track 分支名称 远程分支名称

删除本地分支:git branch -d 分支名称

强制删除指定的本地分支:git branch -D 分支名称

修改分支名称:git branch -m 原分支名 新分支名

强制修改分支名:git branch -M 原分支名 新分支名

切换分支:git checkout 分支名

创建并切换到指定分支 保留所有提交记录:git checkout -b 分支名

创建并切换到指定分支 删除所有提交记录:git checkout -orphan 分支名称

替换本地的改动 新增的文件和已添加到暂存区的内容不受影响:git checkot 文件路径

把指定的分支合并到当前分支上:git merge 分支名

把已经提交的记录合并到当前分支:git cherry-pick

操作远程仓库:

git remote -v :列出远程仓库的详细信息 在别名之后列出URL地址

git remote add 远程仓库的别名 远程仓库的URL地址:添加远程仓库

git remote rename 原远程仓库的别名 新的别名:修改远程仓库的别名

git remote remove 远程仓库的别名:删除指定名称的远程仓库

git remote set -url 远程仓库的别名 新远程仓库的url地址:修改远程仓库的url地址
在这里插入图片描述
推送本地分支到远程仓库:git push 别名 分支

git push远程仓库别名 --delete 远程分支名 :删除指定远程仓库的分支

拉取远程库分支到本地库:git pull 别名 分支

文件操作

比较文件差异

比较当前文件和暂存区中文件的差异,显示没有暂存起来的更改
$ git diff

比较暂存区中的文件和上次提交时的差异
$ git diff --cached
$ git diff --staged

比较当前文件和上次提交时的差异
$ git diff HEAD

查看从指定的版本之后改动的内容
$ git diff

比较两个分支之间的差异
$ git diff <分支名称> <分支名称>

查看两个分支分开后各自的改动内容
$ git diff <分支名称>…<分支名称>

查看文件列表
默认查看所有缓存的文件
$ git ls-files

查看未被跟踪的文件
$ git ls-files -o

查看被修改的文件
$ git ls-files -modified

查看暂存区中文件明细
$ git ls-files -s

删除文件

git rm -r 文件路径 移除跟踪指定的文件夹,并从本吧第仓库的文件加中删除
#删除工作区未跟踪文件
$ rm

移除工作区所有未跟踪文件
一般会加上参数-df,-d表示包含目录,-f表示强制清除。
$ git clean -df

直接从暂存区删除文件,工作区则不做出改变
$ git rm --cached

不但从暂存区中删除,同时删除工作区文件,-f 强制删除
$ git rm -f

撤销文件

重置暂存区,但文件不受影响
相当于将用 “git add” 命令更新到暂存区的内容撤出暂存区,可以指定文件
没有指定 commit ID 则默认为当前 HEAD
$ git reset [<文件路径>]
$ git reset --mixed [<文件路径>]

将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
$ git reset
$ git reset --mixed

将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
相当于调用 “git reset --mixed” 命令后又做了一次 “git add”
$ git reset --soft

将 HEAD 的指向改变,撤销到指定的提交记录,文件也修改了
$ git reset --hard

用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。
$ git checkout – filename

生成一个新的提交来撤销某次提交
$ git revert

重命名文件

git mv
-F:强制重命名或移动文件

-k:跳过会导致错误情况的移动或重命名操作。

-n:什么也没做,只显示会发生什么

-v:移动文件时报告文件的名称。

#重命名指定的文件或者文件夹
$ git mv [-v] [-f] [-n] [-k] <源文件/文件夹> <目标文件/文件夹>

操作标签

git tag :打印所有的标签

git tag 标签名称[] :添加轻量标签 指向提交对象的应用 可以指定之前的提交记录

git tag -a 标签名称 -m 标签描述信息 [] :添加带有描述信息的附注标签 可以指定之前的提交记录

git checkout 标签名称:切换到指定标签

git show 标签名称 :查看指定标签信息

git tag -d 标签名称:删除指定的标签

git push 远程仓库的别名 标签名称 :将指定的标签提交到远程仓库

git pish 远程仓库的别名 -tags 将本地所有的标签全部提交到远程仓库

SSH密钥

检查本地是否有SSH Key存在:ls -al ~/.ssh
在 C盘 User 自己的账户下右键 git bash here,ssh-keygen -t rsa -C 自己的邮箱签名
生成SSH Key:
在这里插入图片描述
将公钥复制到平台,接下来再往远程仓库push东西的时候使用SSH连接就不需要登录了。

git错误示例

1、git status(或任何其他git命令)然后会出现fatal: Not a git repository (or any of the parent directories)错误。

必须实际进入目录。比如:

$ git clone https://gitee.com/l-tinghao/git-demo.git
Cloning into 'git-demo'...
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 24 (delta 8), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (24/24), done.
Resolving deltas: 100% (8/8), done.$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd git-demo/
$ git status
# On branch master

2:error: Your local changes to the following files would be overwritten by merge: 错误:您对以下文件的本地更改将被merge覆盖:

原因:出现了代码冲突,你正在编译的文件有人修改并且提交,导致二者出现冲突。例如:

$ git pull git-demo2 master
From https://gitee.com/l-tinghao/git-demo* branch            master     -> FETCH_HEAD
error: Your local changes to the following files would be overwritten by merge:helloGit.txt
Please commit your changes or stash them before you merge.
Aborting
Updating 45b292c..68d6fbb

解决办法:保存你的本地更改

$ git stash
Saved working directory and index state WIP on master: 45b292c Merge branch 'hot-fix'
$ git pull git-demo2 master
From https://gitee.com/l-tinghao/git-demo* branch            master     -> FETCH_HEAD
Updating 45b292c..68d6fbb
Fast-forwardhelloGit.txt | 3 ++-1 file changed, 2 insertions(+), 1 deletion(-)

3、合并产生冲突

原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替代我们决定使用哪一个,必须人为决定内容。
解决:编辑有冲突的内容,删除特殊符号,决定要使用的内容
特殊符号:<<<<<<<HEAD当前分支的代码======合并过来的代码>>>>>>>分支名

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

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

相关文章

智能管理轻松搞定!文件批量改名并按数量平均分类,自动新建文件夹保存!

我们面对大量文件需要整理和管理时&#xff0c;批量改名和分类是一项繁琐而重要的任务。为了帮助您高效完成这项工作&#xff0c;我们介绍了一种智能方法&#xff1a;按数量平均分类并自动保存文件&#xff0c;让您轻松整理文件夹内容。 首先第一步&#xff0c;我们要进入文件…

swift简单弹幕例子,仿哔哩哔哩

先看例子 每个弹幕的速度都是不一样的&#xff0c;支持弹幕整体开始暂停。 如果弹幕实在是太多了&#xff0c;有个缓冲队列&#xff0c;不停的重试能否显示&#xff0c;保证文字都能显示全&#xff0c;并且每条都能显示。 实现是基于 CADisplayLink 实现的&#xff0c;如此来…

工业以太网的发展历程与应用前景

工业以太网是在工业自动化和物联网领域广泛使用的通信网络&#xff0c;它具有应用广泛、价格低廉、通信速率高、软硬件产品丰富、应用支持技术成熟等优点&#xff0c;目前它已经在工业企业综合自动化系统中的资源管理层、执行制造层得到了广泛应用&#xff0c;并呈现向下延伸直…

Verilog 学习之路(三)——牛客刷题篇

1.输入序列连续的序列检测 题面 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJH9kHFH-1690301233803)(https://s2.loli.net/2023/07/26/HJPXR2mhbaVCG6d.png)]思路 对于序列检测题目&#xff0c;常规的解法有两种&#xff1a;状态机法和序列缓存…

概率论和随机过程的学习和整理--番外16,N合1的合成问题的求平均个数,次数,阶数

目录 1 问题 2 用条件期望&#xff0c;求合成的次数 2.1 思路1 2.2 思路2 3 用条件期望&#xff0c;求合成的个数 3.1 令X表示用材料1往上合成时&#xff0c;合成材料2的个数 3.2 令Y表示用材料1往上合成时&#xff0c;合成材料3的个数 4 用条件期望&#xff0c;求合成…

现行业供应链数字化转型难的最根本原因是什么?

由于各种原因&#xff0c;行业供应链的数字化转型可能充满挑战。然而&#xff0c;最根本的原因之一是供应链本身固有的复杂性和碎片化。以下是造成这一困难的一些关键因素&#xff1a; 1.缺乏标准化&#xff1a;供应链通常涉及多个组织、系统和流程&#xff0c;这些组织、系统…

删除主表 子表外键没有索引的性能优化

整个表147M&#xff0c;执行时一个CPU耗尽&#xff0c; buffer gets 超过1个G&#xff0c; 启用并行也没有用 今天开发的同事问有个表上的数据为什么删不掉&#xff1f;我看了一下&#xff0c;也就不到100000条数据&#xff0c;表上有外键&#xff0c;等了5分钟hang在那里&…

网络安全系统教程+学习路线(自学笔记)

一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

Upload-Labs通关

问题 记录BUG—在uploadlabs第三关中—关于phpstudy中修改httpd.conf依旧无法解析.php3d等问题_upload第三关常见错误_dfzy$_$的博客-CSDN博客 我们首先先来了解一下什么是文件上传 首先 很简单 文件上传就是 需要用户进行上传文件 图片或视频等信息但是如果用户恶意上传木马…

C++中的数学问题---进制转换

二进制转十六进制 string binToHex(string bin){string hex"";if(bin.size()%4!0){for(int i0;i<(4-bin.size()%4);i){bin"0"bin;}}for(int i0;i<bin.size();i4){string tmpbin.substr(i,4);bitset<4>b(tmp);hexb.to_ulong()<10?char(b.t…

解决报错:Can‘t connect to HTTPS URL because the SSL module is not available.

本人今天准备打开安装一个label-studio包&#xff0c;试了很多次&#xff0c;接连报如下错误&#xff0c;因此我就去找了一些解决方案&#xff0c;现在总结如下&#xff1a; 1、报错信息如下 2、解决方案如下&#xff1a; github上有对应的解决方案&#xff0c;链接&#xff…

操作系统18:磁盘I/O速度、磁盘可靠性、数据一致性

目录 1、提高磁盘I/O速度的途径 &#xff08;1&#xff09;磁盘高速缓存(Disk Cache) 1.1 - 数据交付(Data Delivery)方式 1.2 - 置换算法 1.3 - 周期性地写回磁盘 &#xff08;2&#xff09;提高磁盘I/O速度的其它方法 2.1 - 提前读 2.2 - 延迟写 2.3 - 优化物理块的…

安全渗透--正则表达式

什么是正则表达式&#xff1f; 正则表达式是一组由字母和符号组成的特殊文本&#xff0c;它可以用来从文本中找出满足你想要的格式的句子。 一个正则表达式是一种从左到右匹配主体字符串的模式。 “Regular expression”这个词比较拗口&#xff0c;我们常使用缩写的术语“regex…

吴恩达ChatGPT《LangChain Chat with Your Data》笔记

文章目录 1. Introduction2. Document Loading2.1 Retrieval Augmented Generation&#xff08;RAG&#xff09;2.2 Load PDFs2.3 Load YouTube2.4 Load URLs2.5 Load Notion 3. Document Splitting3.1 Splitter Flow3.2 Character Splitter3.3 Token Splitter3.4 Markdown Spl…

Ubuntu-解决包依赖关系

Ubuntu-解决包依赖关系的办法 安装软件包的时候&#xff0c;有时会遇到类似下图的依赖问题&#xff0c;无法正常安装&#xff0c;下面提供三种方法解决依赖问题。 1.可以尝试用下面方法处理依赖问题&#xff0c;紧跟前一条安装命令后面输入下面命令&#xff0c;然后再执行安装…

TSN -促进IT/OT 融合的网络技术

时间敏感网络&#xff08;tsn&#xff09;技术是IT/OT 融合的一项关键的基础网络技术&#xff0c;它实现了在一个异构网络中&#xff0c;实现OT的实时数据和IT系统的交互数据的带宽共享。 TSN允许将经典的高确定性现场总线系统和IT应用&#xff08;如大数据传输&#xff09;的功…

了解 3DS MAX 3D摄像机跟踪设置:第 2 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25&#xff0c;将持续时间设置为 12 秒。单…

windows系统安装指定的vue/cli、node和npm;vue/cli脚手架搭建项目所涉及的vue/cli、node、npm依赖版本等问题

文章目录 前言一、安装vue/cli脚手架1.安装指定版本脚手架&#xff0c;我是用的3.12.0版本2.查看版本是否安装成功&#xff0c;成功有版本号2.1问题&#xff1a;安装失败2.2解决方案2.3 安装成功 二、安装指定node和npm1.为什么需要安装指定node和npm版本&#xff0c;同时匹配v…

脑电信号处理与特征提取——2.脑电的神经起源与测量(夏晓磊)

目录 二、脑电的神经起源与测量 2.1 脑电的神经起源 2.2 脑电的测量 二、脑电的神经起源与测量 2.1 脑电的神经起源 脑电起源于大脑皮层大量神经元的同步突触活动&#xff0c;主要贡献来自锥体细胞。 静息电位&#xff1a;内负外正&#xff0c;K内流。 动作电位&…

elementui plus 图标循环加载

今天在学习vue3时&#xff0c;在用Element Plus布局页面时&#xff0c;遇到了一个图标循环加载的问题。开始不知道如何渲染图标&#xff0c;以为像ElementUI 一样可以通过class进行渲染图标&#xff0c;发现无法使用&#xff0c;让后我发现引用的图标是组件&#xff0c;组件的话…