git常见使用

Git 常见操作 有时候commit之后后悔了,可能是commit的message错误,也可能是提交后发现有代码的开发有遗漏,不想再次commit。--oneline参数,代表将每个commit压缩成一行,只显示commitID和commit message的第一行。如果有时候需要将提交到main上的代码同时提交到release等分支就需要cherry pick的操作。按insert键,进入编辑模式,将3,4,5commit的pick修改成。保存,展开修改message的界面,类似rebase的界面。 阅读详情

1. 概念

  • 分布式,有远程仓库和本地仓库的概念,因此要注意同步问题
  • git是面向对象的,本质是内容寻址系统。.git目录下有个文件夹objects,存储git库中的对象,git就是根据object建立一种树形结构,将文件和通过hash的方式关联起来

2. 工作区 暂存区 本地仓库 远程仓库

关系图如下:
在这里插入图片描述

  • workspace:工作区,平时写代码的地方
  • index:暂存区,让写完后的代码变成待提交状态
  • repository:本地仓库,提交暂存区的代码,记录进入代码本地管理
  • remote:远程仓库,将本地仓库修改好的代码提交到远程,可供远程协作的人下载

当创建一个git项目,git会在根目录创建一个git目录,需要重点理解的是以下五个:

  • HEAD:是指针的指针,用来标记当前的提交
    • 新建一个分支的时候其实仅仅是改变了HEAD的指向,这也是git分支比较轻量的原因
  • hooks:用来在git操作前后进行一些操作
  • index:本地的暂存区
  • objects是上面所提到的内容
  • refs:分支的引用

简单来说,repository由git维护的三棵“树”组成:

  • workspace:持有实际文件
  • index:像个缓存区域,临时保存你的改动
  • HEAD:指向最后一次提交的结果

3. 提交代码

开始git操作本地必须有一份代码和remote相连,要么从remote拉取(适用于代码存在remote的情况),要么自己上传本地代码连接remote(适用于repository初次上传到remote的情况)

  • git clone <url>:克隆remote的版本到本地,成功后本地就有了一样的代码,并且也已经与remote连接成功

上传本地代码并连接remote操作大致如下:

1. 在项目的根目录打开Git Bash Here
2. 执行以下步骤:
    git init
    git add .
    git commit -m "first commit"
    git remote add origin 远程仓库地址
    git push -u origin master

修改代码后将其提交到index:

  • git add .:添加当前目录所有文件到index
  • 提交后没有任何提示,可以用git status查看文件是否有修改,是否进入index,已经提交到repository的不会展示

将index里文件提交到repository,这是个离线操作:

  • git commit -m "message":将index里文件提交到repository,message的位置填写本次提交修改的内容和一些注释

将repository提交到remote:

  • git push <remote> <branch>:<remote>位置填写remote名称,<branch>填写需要提交的分支
    • git push origin master:推送到远程origin仓库的master分支

4. 关于协作

拉取remote代码到repository:

  • git pull <remote> <branch>:<remote>写remote名称,<branch>写拉取remote的分支
    • git pull origin master:拉取远程origin仓库的master分支到repository
  • 将代码提交到remote之前,最好先拉取一下远程的最新代码,以免产生冲突

4.1 分支

在合作中有可能会有并行开发的需求,但可能不会同时上线,不能把没有开发完成的分支上线,所以就出现了分支branch

分支的功能:从同一份稳定代码拉出有相同代码的分支,每个人在自己的分支上开发提交代码,不会互相打扰,完成后再进行代码的合并

  • master是默认的分支,在其他分支上进行开发,完成后再将它们合并到主分支上
  • 除非将分支推送到远程仓库,不然该分支是不为别人所见的

举个例子实践一下:

  • git checkout -b dev:创建并切换到dev分支
    • 加上-b参数表示创建并切换
    • git branch dev + git checkout dev
  • git branch:查看所有本地分支,当前分支前面会标一个*号
  • git branch -d dev:删除dev分支

4.2 合并分支

合并之前确保要合并的两个分支都是当前分支的最新代码(pull一下),再切换到要保存合并代码的分支

  • git merge <branch>:合并指定分支到当前分支
  • git log --graph:查看分支合并图
  • 合并后可能出现冲突,需要修改文件手动合并这些冲突
  • git add <filename>:来标记合并成功

常见冲突管理:

  • git merge --abort:撤销合并操作,回到开始合并之前的状态
  • 当解决完冲突后,在合并完成后发现一个错误,git reset --hard就可以回滚到那个合并之前的状态

git常见命令速查表:
在这里插入图片描述

5. 常见场景及解决方案

5.1 stash

场景:正在feature分支下开发新需求,但是线上突然出现bug要马上修复,需要切到master分支

只需要git stash就可以把代码存起来,修复完线上问题后切回feature分支,用git stash apply就可恢复代码

一些相关命令:

# 保存当前未commit的代码
git stash

# 保存当前未commit的代码并添加备注
git stash save "备注的内容"

# 列出stash的所有记录
git stash list

# 删除stash的所有记录
git stash clear

# 应用最近一次的stash
git stash apply

# 应用最近一次的stash,随后删除该记录
git stash pop

# 删除最近的一次stash
git stash drop

5.2 reset –soft

应用场景:有的时候不小心把不该提交的内容commit了,想改回来就只能再commit一次,但就多了一条“黑历史”

只需要`git reset --soft HEAD^,相当于后悔药,可以再次修改重新提交,保持干净的commit记录,这说的是未push的commit。

对于已经push的commit也可以使用该命令,不过再次push时,由于远程分支和本地分支有差异,需要强制推送git push -f来覆盖被reset的commit

PS:在reset --soft指定commit时,会将该commit到最近一次commit的所有修改内容全部恢复,而不是只针对该commit

保姆级教程:在ROS Noetic下,手把手教你将自定义A*全局规划器打包成插件(附避坑指南) 本文提供了一份详细的ROS Noetic下自定义A*全局规划器插件开发指南,涵盖从环境准备、算法优化到插件配置与调试的全流程。通过实战案例和避坑技巧,帮助开发者高效实现机器人导航中的全局路径规划,特别适合需要优化ROS导航栈的开发者。 阅读详情

相关推荐

用WorkBuddy和ima搭建本地知识库:从概念到实操

在AI应用普及的今天,私有知识的高效管理与调用成为痛点。RAG(检索增强生成)技术通过将外部知识库与语言模型耦合,为精准问答提供了技术底座。然而,传统RAG方案往往涉及向量数据库、文本切分等复杂环节。一种更轻量的路径应运而生:借助WorkBuddy与ima的组合,将知识收集、语义检索与智能体工作流整合,让本地知识库真正服务于日常办公和研发场景。从概念到实操,系统解析这套轻量级方案的核心逻辑与配置方法,并对比重方案适用边界,帮助读者快速搭建属于自己的AI知识助手。

weixin_32830601的博客 424

Git常见操作

本文介绍git的常见用法

QQVQQ的博客 2469

倍福ADS通讯协议深度解析——从握手到数据包的完整旅程

本文以工程师视角,通过Wireshark抓包实战,深度解析了倍福ADS通讯协议的完整工作流程。从TCP三次握手建立连接,到拆解AMS/TCP信封、AMS Header地址与命令解析,再到ADS Data读写请求的载荷构成,完整呈现了一次数据通讯的“旅程”。文章重点剖析了协议包格式,并结合实际案例,提供了基于协议分析的故障排查思路,帮助开发者深入理解并精准调试工业自动化系统通讯。

weixin_29231725的博客 152

GIT | GIT常见面试题

GIT常见面试题 1. 列举工作中常用的几个git命令? 新增文件的命令:git add file或者git add . 提交文件的命令:git commit –m或者git commit –a 查看工作区状况:git status –s 拉取合并远程分支的操作:git fetch/git merge或者git pull 查看提交记录命令:git reflog 2. 提交时发生冲突,你能解释冲突是...

星空下的程序猿 6万+

freertos移植心得

1.freertos移植msp430 今天终于移植成功了freertos。现在写下这篇博文来整理这一路移植过程中遇到的问题和心得。 由于使用的是IAR FOR MSP430的IDE,博文只讨论在IAR下的移植。本文针对的是官方支持的平台架构下的移植,不使用官方提供的demo,得到的是一个纯洁版的系统。 1.下载源代码 在freertos的官网下载一份最新的源代码点击打开链接。 2.选择平

一条狗的博客 4174

MQTT与物联网平台(一):基础知识和设备接入物联网平台的实现(以华为云为例)

本文简单介绍了MQTT的基础知识和使用方法,以蓝牙WIFI双模芯片W801作为硬件设备,接入到华为云。

weixin_50622833的博客 1万+

git常见命令

git init 作用:初始化一个空的git本地仓库。一般新建一个空的文件夹使用git时,需要通过该命令初始化一个git本地库,会产生一个隐藏文件夹.git,如图1所示。 ...

欢迎来到小七的博客,这里将带你深入探索5G通信的神秘世界。无论你是通信领域的专业人士还是对这一领域充满好奇心的技术爱好者,这里都有专业协议解读、通信知识普及以及有趣的Python编程内容等你发现。 458

J1939协议实用指南与J1939数据记录方案

“没错,这是一份SAE J1939简单、实用指南。”—虹科 **开篇:**在这篇介绍中,我们介绍了J1939协议的基本知识,其中包括PGN和SPN。因为这是一篇偏向应用的简介,所以您还将会学习到如何通过DBC文件解码J1939数据、如何记录J1939、典型的应用案例和实用技巧。下面,来了解下这份简单易懂的J1939介绍吧~ 什么是J1939? 简而言之,SAE J1939其实是一套标准,重型车辆ECU间就是按照这套标准在CAN总线上进行通信的。当今大多数车辆都通过CAN(Controller Area Ne

1万+

git常见问题及解决

CRLF 是 carriage return line feed的缩写。中文意思是回车换行。LF是line feed的缩写,中文意思是换行。CRLF表示句尾使用回车换行两个字符(即我们常在Windows编程时使用"\r\n"换行)LF表示表示句尾,只使用换行.CR表示只使用回车.

Orzak的博客 1784

计算机考研408复试题汇总

TCP连接是全双工的,两端都可以先挥手 其中一端完成数据发送任务后,发送一个FIN包来终止,另一端针对这个FIN包回复确认包, 直到另一端也发送请求终止数据包FIN,另一端作出确认应答,并且还要发送一个ACK=1表示确认号有效,如果没有收到这个就可以进行重传.

ca1m4n的博客 1万+

Win10 系统下VisualStudio2022 配置Open3D-0.18.0(C++)

Win10 系统下VisualStudio2022 配置Open3D-0.18.0

点云侠的博客 2658

关于用git上传远程库的一些常见命令使用和常见问题:

首先检查当前目录下是否真的有 文件:如果命令返回 “找不到文件”,说明文件不存在,需要先创建文件或检查文件名是否正确。Git 对文件名的大小写敏感(尤其是在 Linux/macOS 系统上),例如:仔细核对文件名,确保与实际文件名完全一致。 只能操作当前仓库目录下的文件。如果 在子目录中(例如 ),直接执行 会找不到文件。解决方法:如果确实需要添加 ,但文件还未创建,可以先创建文件:创建成功后,再执行 即可。 必须在已初始化的 Git 仓库中执行(即包含 文件夹的目录)。如果还未初始化仓库:按照以

DIY 1772

go语言实现服务器server端与客户client端即时通信(附完整源码)

go语言实现服务器server端与客户client端即时通信(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 629

Git和adb的常见使用

用于保存当前目录的临时状态,并将其存储为一个新的stash,在使用此命令时,用于可以选择添加一个信息来描述stash的内容,rebase会把当前分支的commit放到公共分支的最后面,所以叫变基,就好像你从公共分支又拉了一个分支出来一样。它的作用是在现有代码的基础上开辟一个分岔口,使得代码在主干线和分支线上同时进行开发,英文名为branch。仓库下的.gitignore文件,如果存在的话,就去一行行读取这个文件内容,并把每一行指定的文件或目录。若执行过add命令,这张方式无法撤销,所修改的内容无法修改掉,

qq_62054791的博客 1709

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

git的常见使用

本文主要列举Git一些常见的使用。 首先可以使用git --help查看相关的指令帮助 $ git --help usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-...

生活,需要你的温暖。 221

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

git使用常见场景

标题大纲常见命令.git目录 常见命令 git init 本地库初始化 git config --global user.name zhangsan 设置张三用户的用户级别 git config --global user.email zhangsan@abc.com 设置张三用户的用户级别 git config --list --global 显示config的配置 gti status 查看工作区、暂存区的状态 git add readme.md 添加readme.md文件到暂存区 git commit

weixin_47361832的博客 559

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

git 使用和常见bug

初次在本地配置git时 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com" 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这...

懵懂的博客 917

git常见使用场景

文章目录场景一:删除不需要的分支场景二:修改最新commit的message场景三:修改老旧commit的message场景四:怎么把连续的多个commit整理成一个场景五:怎么将不连续的commit整理成一个场景六:比较暂存区与HEAD的差异git场景七:比较工作区和暂存区的区别场景八: 让暂存区恢复成和HEAD的一样场景九:工作区的文件恢复和暂存区的一样场景十:取消暂存区部分的文件更改场景十一:取消最近几次的提交场景十一:查看不同提交的制定文件的差异场景十二:删除文件场景十三:指定不需要git管理的文件

YxinMiracle's Studio. 666

git常见命令总结

git的常见操作

weixin_65019617的博客 714

【Git】常见报错

文章目录1、上传大小限制2、安全设置问题3、当前文件夹目录没有初始化为git目录 1、上传大小限制 报错1:error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054 报错2:error: unable to rewind rpc post data - try increasing http.postBuffer 报错3:fatal: the remote end hung up unexpectedly 出.

懂得一千零一种,赋予你失败的方法! 4022

Git的常见操作

文章目录Git版本控制开发难题主流的版本控制产品介绍组成结构图命令速查常用命令码云配置环境注册账号登录安装GIT设置字体查询git码云创建仓库创建远程仓库(在码云官网上)创建本地仓库(在你的磁盘中)每日任务新文件推送拉取/下载常见错误Authentication failed forfailed to push some refs to…fatal: remote origin already existsSSL certificate problem: unable to get local issuer

Javaciyuwolilian的博客 188

git的常见操作

首先git bash的安装 (这个就不做过多的描述了,具体的在官网下载就行) 1.拉去别人的项目 命令:git clone 别人的项目路径 一般来讲git clone的项目路径有2中http的和ssh的 区别: ssh的需要在本地建立秘钥(听说是安全性要高点) 在本地新建的命令 ssh-keygen -t dsa id_dsa...

qq_41925937的博客 263

git使用的常见问题

常见的git使用

lovecoding1的博客 528

Git常见使用

1.先创建一个文件,再进入到对应的文件夹中2.创建对应的Git仓库(在对应的文件夹内)

2303_77303297的博客 770

常见git报错问题

1.windows使用git时出现:warning: LF will be replaced by CRLF windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法: $ rm -rf .git // 删除.git $ git config –global core.autocrlf false //禁用自动转换 然...

大山博客 1610

Git常见问题总结

常见问题 1、拉取别人的远程分支合并后,git 会存取这个拉取的记录,如果你不小心删了别人的上传的文件,这时候想要再拉取别人的分支是没用的,会显示 already-up 这时候可以回滚代码,重新拉取。 2、以前有过这样的经历:前后端、客户端的代码都存放在一个 git 仓库中,在根目录下各自新建项目目录。那么可以直接在自己的项目目录下使用 git 提交代码并且在各自的项目目录下配置 .gitignore 文件,不用在根目录下配置 .gitignore 文件,这样就互不影响了 3、fatal:refus

weixin_59963229的博客 2885
上一篇: 会话跟踪及常用方法
下一篇: 发布-订阅模式
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值