git和github一些概念和操作备忘

【Git】如何理解git push origin HEAD:refs/for/master 如何理解git push origin HEAD:refs/for/master 阅读详情
  1. origin默认是远程仓库

  2. HEAD永远指向当前的commit

  3. 一个branch可以理解为一个commit,也可以理解为从起始commit开始的一条分支, branch可以和master在一条线上,branch也可以另起一条分支,branch可以领先于master也可以落后于master
    所以“”“”branch就是某个commit的一个引用,只是在git log的时候会列出当前路径的所有commit,所以也会看成是一条路径,但是本质上是一个commit的引用”““”“

:::github会默认以master为主分支,但是切记master分支和其他分支是完全等价的,在git看来都是一样的,是平等的。

  1. git log --decorate会显示每一条提交的HEAD, 分支名,tag等 — https://blog.youkuaiyun.com/daguanjia11/article/details/73823617

  2. git push之后,在本地origin/master和origin/HEAD会指向当前push的commit位置

  3. 在多人合作的场景下,假如A已经push了一些内容到远程仓库,而A在没有pull的情况下再去push,远程仓库会拒绝这次push,再拒绝了push之后,需要本地先进行git push操作

  4. 假如在git pull的时候远端仓库没有本地的提交,本地也没有远端仓库的提交的时候,git会默认把二者独有的部分进行merge并生成新的commit。git pull的原理就是
    先git fetch 再git merge

  5. origin/master,origin/HEAD这两个和master,HEAD等价,表示的都是引用

  6. 创建branch用 git branch branch1, 切换用git checkout branch1, 创建并切换用git checkout -b branch1, 删除用git branch -d branch1,注意删除branch只是删除了这个引用
    而已,并不会删除这个branch上的任何提交。 注意HEAD指向的branch不能删除。没有合并到master上的branch删除时会失败。

  7. 引用本质上是一个字符串,保存在.git/refs文件夹中,有三种引用分别是refs/heads, 即master和我们创建的引用, 一种是refs/remotes即从远程
    仓库上拉下来的origin/HEAD和origin/master

  8. push的本质上把当前branch指向的commit位置连同他的路径一并上传到远端仓库,假如本地branch是master则只需要git push,假如是其他的branch
    例如branch1,则需要先checkout到分支branch1,再使用命令 git push origin branch1, origin代表默认的远程仓库,branch1是当前的commit及其路径。
    且push完branch1之后,虽然本地仓库的HEAD指向的是branch1,但是远程仓库的HEAD还是指向master。因为push操作并不是推送HEAD到远程。

  9. pull包含两步,先fetch再merge, merge操作的本质是:从目标commit和当前commit分叉的位置起把目标commit的路径上所有的内容一并应用到当前commit
    然后在自动生成一个新的commit,它会存在两种冲突
    12.1 假如修改了不同的文件,则merge后两个文件都被修改。假如修改了同一个文件的不同行,则合并后两个行都被修改。这都是自动完成的。
    但是假如修改的是同一文件的同一内容,则会发生git不可控制的错误,这时需要手动处理这个冲突的区域(git会把冲突的commit都列出来),再手动commit一下即可。也可以防锈merge, 用git merge --abort
    12.2 假如HEAD领先于目标commit,这时merge审核也不会做。假如HEAD落后于commit,则直接fast-forward.fast-forward是实际开发中的经典情形,指一方提交,一方没有提交的情况。

git pull 的完整内容是 git fetch + get merge origin/HEAD. 因为第二步得到的branch是origin/HEAD

  1. 中央式的版本控制是所有人都围绕着master分支开发,只有开发完毕才能看到别人的代码,这给代码共享和review带来了极不便。
    最流行的工作流 Feature branching,核心内容是两点:
    13.1. 任何新的功能(Feature)或者bug修复全都新建一个branch来写;
    13.2. branch写完后合并到master,然后删掉这个branch

    这样的话可以在开发完feature1之后先把feature1push到远程,请别人review过了之后再本地merge,本地和远程都删除feature1分支

    github将这个过程做了简化,即你先fork中央仓库到你的账号下,然后将本地仓库pull到你的电脑再新建branch做修改,做了修改之后将这个branch分支pull到你的仓库。然后新建一个pull request,
    中央仓库的人员看到这个pull request之后会假如没有问题会merge你的branch,

  2. 对于一人多任务的情况,可以先将当前的branch打一个未完成todo的tag,再切换到master分支上新建一个新功能的分支,假如有一天想要继续开发旧功能,只需要checkout到旧的分支

  3. 对比暂存区和上一条提交 git diff --staged, 对于工作目录和暂存区 git diff; 对比工作目录和上一条提交 git diff HEAD

  4. 查看最新的commit,git show 相当于 git show HEAD

【Git/GitHub/VSCode】Git提交时使用EMOJI表情、在VS Code中使用emoji commit 不经意发现大佬的GitHub上,Git的提交信息竟然有emoji前缀,相当鹤立鸡群、别具一格,感觉挺有趣的,就想着自己也使用一番。个人认为这样做有三点好处,后两点尤为重要: emoji比较呆萌,能美化提交记录和GitHub页面; emoji作为标签,能很好的对提交记录分门别类,方便整理; emoji蕴含的丰富语义和情绪,能提高提交信息的可读性、可理解性,增强提交历史的阅读体验。 一个示例如下所示,提交新内容,更新属性、贡献者、证明,消除Bug等等,各有各的emoji: 这些emoji来自哪里?有什么统 阅读详情

相关推荐

一分钟学会MATLAB-数据清洗(含完整代码)

数据清洗是数据分析过程中的一个重要步骤,目的是提高数据的质量,以便进行更有效的分析。% 删除超出阈值的行。% 用线性插值填充缺失值。% 删除包含缺失值的行。% 找到缺失值的位置。% 可视化数据,识别异常值。缺失值是数据清洗中常见的问题。通过以上步骤,你可以有效地清洗数据,使其准备好进行后续的分析和建模。

2402_87132195的博客 3316

Git & GitHub纯新手入门教程

基于VSCode上传项目到GitHub步骤

qq_43629945的博客 2873

硬件压力测试工具使用方法

B, --bind host# 绑定到主机的多个地址中的一个。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。-c, --client host#如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。-C, --compatibility# 与低版本的Iperf使用时,可以使用兼容模式。-b, --bandwidth #[KM] UDP模式使用的带宽,单位bits/sec。

weixin_53303772的博客 8214

git 中 A C D M R T U X 分别解释

git 中 A C D M R T U X 分别解释 ​ A: 你本地新增的文件(服务器上没有). C: 文件的一个新拷贝. D: 你本地删除的文件(服务器上还在). M: 文件的内容或者mode被修改了. R: 文件名被修改了。 T: 文件的类型被修改了。 U: 文件没有被合并(你需要完成合并才能进行提交)。 X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug rep...

Leon_940002463的博客 9437

Lattice HSB 相机方案

Lattice与NVIDIA合作的HSB相机方案提供低延迟视觉处理方案。该方案采用CertusPro-NX/Avant-E FPGA接收多路相机数据,通过10G/25G以太网直连GPU显存,实现端到端延迟<17ms、CPU占用<1%的高效处理。方案支持PTP同步、多种协议,适用于医疗、工业、车载等领域。相比传统方案,开发效率提升10倍以上,具有显著性能优势。部署需Lattice FPGA板、10G/25G交换机和Holoscan SDK等软硬件支持。

xzjiang_365的博客 754

AD学习笔记(一)基础认识

文章目录AD学习笔记第一讲 AD基础认识一、两库两图(分别对应下图)1、PCB图(pcbdoc)2、原理图(schdoc)3、原理图库(schlib)4、PCB库(pcblib)二、封装1、DIP封装2、LQFP封装三、绘制整体流程1、建立工程(PrjPcb)2、建立两库两图并保存整个工程(五次)3、从库中提取绘制原理图4、原理图导入pcb图5、根据原理图布线6、pcb图交由工厂打板 AD学习笔记 第一讲 AD基础认识 一、两库两图(分别对应下图) PCB图(pcbdoc) 原理图(schdoc) PCB库

qq_52465473的博客 6686

GitHub 创建分支 (branch) 并提交分支

GitHub 创建分支 (branch) 并提交分支

程永强 1万+

Vue3 视频播放器完整指南 – @videojs-player/vue 从入门到精通

全面解析 Vue3 生态中最强大的视频播放解决方案 @videojs-player/vue。从基础安装到高级功能,涵盖自动播放、直播流、字幕支持等核心特性。提供完整的代码示例和最佳实践,助你快速构建专业的视频播放应用。

前端开发-前端技术分享 1422

【GIT版本控制】--GIT的基本概念

这些基本概念为有效使用GIT提供了基础。理解仓库、提交、分支和合并使您能够跟踪项目的历史、管理多人协作、在不同分支上进行实验性开发,并确保项目的不同部分在合并时保持一致。GIT的强大之处在于它提供了一种高度灵活和可控制的方法来管理和跟踪项目的演变。

喵叔 522

QT使用libssh2库通过密匙实现sftp协议上传文件

qt下使用libssh2通过密匙连接sftp服务器端

小米的修行之路 939

超声波雷达探测车位及信号处理方法

在APA泊车中用到了超声波雷达,第一次接触,总结研究之。

周陽讀書 1229

GitHub Training Kit完整指南:开源Git和GitHub学习资源的终极解决方案

GitHub Training Kit是一个专为Git和GitHub设计的开源课程教材,为开发者和团队提供了全面的版本控制学习资源。无论您是编程新手还是经验丰富的开发者,这个项目都能帮助您快速掌握Git的核心概念和实用技巧。 ## 🚀 项目核心价值解析 GitHub Training Kit最大的优势在于其双重许可证策略,让知识传播更加自由高效。项目采用CC-BY-4.0和CC0-1.0两种

gitblog_00333的博客 864

〔重庆理工大学〕计算机网络实验指导书【实验九 直连路由,静态路由,默认路由配置】

本实验指导书介绍了直连路由、静态路由和默认路由的配置方法。主要内容包括:1)路由器基础知识,包括直连路由、静态路由和动态路由三种路由生成方式;2)路由度量值与匹配顺序,解释了不同路由类型的优先级;3)实验任务分为三个部分:直连路由的查看分析、静态路由的配置以及默认路由的配置,详细说明了配置步骤和命令。实验要求通过模拟器搭建网络环境,完成路由配置使PC间能够互通。实验旨在帮助学生掌握不同路由类型的工作原理和配置方法,适用于简单的网络环境。

Pretty Boy Fox的博客 1056

VScode利用Git连接Github

这里将git于github连接的步骤简单描述一下,用以备忘。第一步请确保你安装了最新的VS Code.http://code.visualstudio.com/请确保安装了最新版的Git。https://git-scm.com/download。git安装到环境变量里, 确保任意路径可以访问。第二步创建一个全球用户名、全球邮箱,设置全局配置 $ git...

dev_zyx的博客 4473

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Git/GitHub】学习笔记一 安装Git、GitHub/Git的初步配置与使用

文章目录1. 什么是GitHub(1) Git仓库(2) Organization(3) Issue(4) Wiki(5) Pull Request2. Git的导入(1) 安装Git(2) 初始设置3. 使用GitHub的准备工作(1) 创建账户(2) 设置SSH Key(3) 添加公开密钥(4) 使用社区功能4. 实际动手使用GitHub(1) 创建仓库(2) 连接仓库(3) 公开代码① clone已有仓库② 加入暂存区和提交文件③ push更新仓库 1. 什么是GitHub GitHub是为开发者提

memcpy0的博客 1267

Statistics and Machine Learning Toolbox

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

Git操作备忘

记录git常用操作

flyinmind的专栏 845

Github and Git memo 备忘录

可以查看http://gitref.org/来找到更全的命令信息 本地操作 1  安装git bash  http://help.github.com/win-set-up-git/ 你的ssh key:cd  ~/.ssh/id_rsa.pd 2 进入你的项目目录Hellogit     git init :git初始化,创建一个repo(仓库) 3 假设我们的文件夹里:

小脸龙的老巢 2322

github相关操作备忘

You’ve successfully authenticated, but GitHub does not provide shell access.”的消息,则表示SSH连接已成功建立。这个错误通常是由于文件夹或文件的权限设置引起的。这个错误通常是由于使用SSH连接时没有正确添加公钥到GitHub账户所引起的。文件中的内容复制到GitHub账户设置中的SSH密钥部分。如果存在公钥和私钥文件,则表示已生成SSH密钥。是您要上传文件的GitHub存储库的地址。是您要推送更改的GitHub存储库的名称,

陆沙的博客 461

Github配置,简易版(备忘版)

简单说一下Github的配置,主要是怕自己忘了。 首先得下载一下git,windows的朋友们装一个git bash就ok了,一路默认安装就行。linux的朋友们输入下面这个应该就完事了。 sudo apt install git 然后是设一个ssh钥匙。先确认一下自己是不是已经有一个ssh公钥了,进入以下文件夹: # 用户目录/.ssh, 本人的在windows下是这个 C:\Use...

foreyes_1001的博客 310

Android备忘录github,Github备忘录

创建密匙:第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:$ssh-keygen -t rsa -C "youremail@example.com"你需要把邮件地址换成你自己的邮件地址,...

weixin_39567870的博客 222

git命令行添加本地仓库到github网站以及删除、更新操作

1.在github上建好仓库 2.sudo apt-get install git 3.生成非对称秘钥,将公钥放到github账户设置中 4.验证能否成功连接到github 5.设置username和email 以上内容在 ubuntu上传代码文件到github 博客中写得很明白。 若你的github账号永远都是如此,则以上操作只用执行一次。 2019.12.13添: 下面将"ub...

z1314520cz 828

Git 备忘清单

最新的放在最上面。

python宝库 1014

Git 备忘录

本文系统介绍了Git的核心概念和常用操作。主要内容包括:1. Git的三大区域(工作区、暂存区、本地仓库)和文件流转过程 2. 核心命令详解:从git add到git push的完整工作流 3. 常见冲突解决方案(pull/rebase处理远程更新) 4. 文件状态查看方法(git status/ls-files/show等) 5. 撤销和回退操作(restore/reset等) 文章通过清晰的区域划分和命令流程图,帮助开发者理解Git版本控制的底层逻辑,并提供了解决协作冲突的实用技巧,特别强调了安全操作的

XINGXIN 258

git使用方法——自己总结备忘(GitHub使用 )

git提交到远端 1、首先在本地创建ssh key 桌面右键 -》git bash here: ssh-keygen -t rsa -C "your_email@youremail.com" 2、在github网站上,点击头像,再点击“settings”,再点击“SSH”。再new ssh key.把key复制进去。(不要用文本文档打开,可能会出错) 3、验证是否成功 ssh -T git@github.com 如果是第一次的会提示是否continue,输入yes就会看到:You've success

weixin_41487423的博客 220

GitHub Git 备忘单

Reference: https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf

程序人生 1046

【Android项目—云备忘录】(一) github仓库搭建、钉钉机器人设置、git的基本使用

📒博客主页:开心星人的博客主页 🔥系列专栏:Android项目—云备忘录 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年5月25日🌴 🍭作者水平很有限,如果发现错误,还望告知,感谢! 👀 项目地址: 这里 📌导航小助手📌🌳github仓库搭建🌳钉钉机器人设置🌳git的基本使用1、安装Git2、简单配置3、主要使用clonepushpull 🌳github仓库搭建 刚开始是准备使用gitee的,速度会快一点,但是私人仓库最多五个人,弃之 还是使用github 直接开源 选择setti.

开心星人的博客 1160
上一篇: Python的模块和包以及代码中引用报错等各种问题一次性说清楚
下一篇: 程序员的自我修养 - 读书笔记文字版
河流儿
博客等级 码龄11年 45粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值