【git1】指令,commit,免密

news2025/2/26 18:37:47

文章目录

  • 1.常用指令:git branch查看本地分支, -r查看远程分支, -a查看本地和远程,-v查看各分支最后一次提交, -D删除分支
  • 2.commit规范:git commit进入vi界面(进入前要git config core.editor vim设一下vi模式)
  • 3.ssh免密登录(不是https):whoami,adduser,su,-i


1.常用指令:git branch查看本地分支, -r查看远程分支, -a查看本地和远程,-v查看各分支最后一次提交, -D删除分支

git pull -p    # 拉取分支和tag,git remote update -p
git fetch origin arch(远程):arch(本地)
git lfs clone  #Large File Storage,在Git仓库中用一个1KB不到的文本指针来代替文件的存在,通过把大文件存储在Git仓库外,可减小Git仓库本身的体积,使克隆Git仓库的速度加快且不会损失性能

git add -A   # 全部,这样新增的文件也能stash save
git commit -m '提交信息' --no-verify    # 可以跳过代码检查
git commit --amend -m '提交信息' --no-verify    #对上一次的提交进行修改
git log --oneline --graph   # 查看commit第一行
git status   # 查看工作区变更是红色(缓存区是绿色),新版本
git push origin dev(本地) :dev(远程) -f    # 覆盖commit

git stash save a  # 先git add -A再执行这一步后再git pull origin ,因为有冲突也能pull成功
git stash list  # 可到新分支pop此分支改动
git stash pop stash@{0}  #有冲突也pop出来了,解决冲突(updated是远程)后保存并git add这文件即标记已解决,可用git reset HEAD 文件将绿变红,最后git stash drop stash@{0}

在这里插入图片描述
桌面新建名为gitdemo文件夹通过vscode软件打开,vscode安装两个插件:Git History,GitLens。如下执行后即创建了本地版本库,vscode左下角出现master分支。
在这里插入图片描述
新建1.txt文件。git add 文件前先ctrl+s,git diff,git status,git log查看需提交的文件路径。
在这里插入图片描述
git remote add/remove添加/删除一个远端仓库,origin名字可代替后面github仓库(这是github仓库是https版本,换成ssh版本并配置key免密登录),git remote -v显示所有远程仓库。git push本地归档区内容提交到远程github仓库。因为采用https会提示登录github。关联后就可以直接git pull/push 空(git clone不需要自己创建本地版本库,会自动和远程版本库进行关联)。

git reset --mixed commithash(这个commithash之前都没了,默认mixed)或HEAD^^(回退2个版本)(缓存区和归档区都回滚)。git reset --hard硬还原前面回滚掉的版本,commithash因为被回滚掉了,用git log 空(每次提交commit信息)查不到,用git reflog 空(所有操作信息)查,三个区都回滚了保持一致。git reset --soft只回滚归档区。git revert commithash,将中间一次commithash扣掉,这个commithash的三个区都被扣掉。
在这里插入图片描述

# 在Windows下,标准的行结尾格式是CRLF(回车符和换行符),它由一个回车符(CR)和一个换行符(LF)组成,即\r\n。
# 在Unix和类Unix系统(如Linux和macOS)中,标准的行结尾格式只使用换行符(LF),即\n。
# git 提交出现dos格式的解决方法,关闭 git 的自动换行符转换。
git config --global core.autocrlf false
git checkout -- a.html  # 还原a.html文件改动, 红色变没 ,*还原所有文件
git checkout -b dev   # 创建并切换到dev分支,不加-b只是切换

git pull = git fetch + git merge  # 一般不单独用merge
git push <远程主机名> <本地分支名>:<远程分支名>  # git push origin dev:dev 和 git push origin dev 等效,因为本地分支和远程分支同名可以省略冒号部分

git diff > a.patch , git apply a.patch
git add,  git commit -m "" ,  git format-patch -1
git cherry-pick 另一分支commitid, 出现冲突,git status查看解决后git add冲突文件后git cherry-pick --continue

git tag  # 查看本地分支标签
git tag -a s3ip-v0.02.00 -m "s3ip v0.02.00 release"  # 创建分支
git checkout -b s3ip-v0.02.00   # 切分支,如果分支不存在则创建
编译代码,image刷到目标机器测试功能
创建压缩包(image,md5,releaseNote,自测报告),把压缩包发给pm并上传W:\3.OpenBMC\Project\S3IP\release 
上传tag(git push origin s3ip-v0.02.00)和branch

2.commit规范:git commit进入vi界面(进入前要git config core.editor vim设一下vi模式)

# .commit_template.txt隐藏文件:
[Project/Common][Feature/Bug/Enhancement/Porting/Debug/Style/Build/Docs/Refactor/Revert]: Brief oneline Summary(Less than 50 characters)

[Description]:
------
Detail description of this change, can be multiple line and each line less than 60 characters

[Root Cause]:
------
Why the issue happened

[Solution]:
------
Your design proposal(for requirement)

[JIRA]:
------
https://jira.huaqin.com:8443/browse/xxxx

[Test]:
------
Add log or Add log file, picture in Merge Request


# .commit-msg-hooks.sh隐藏文件:
#!/bin/sh
str=$(cat $1)    # $1就是git commit进入里的信息即ommit_template.txt内容和下面注释的信息
python .git/hooks/commit-msg-check.py "$str"


# .commit-msg-check.py隐藏文件:
#!/usr/bin/python
import sys
support_plat = ["Common", "SR", "Lin"]
support_type = ["Feature", "Bug", "Enhancement", "Porting",
                "Debug", "Style", "Build", "Docs", "Refactor", "Revert"]
format_dict = {"Description": False, "Root Cause": False,
               "Solution": False, "JIRA": False, "Test": False}

line = sys.argv[1]
if line.startswith("Merge branch"):
    exit(0)

commit = line.splitlines()
if len(commit[0]) == 0:
    print("Reject!!!! \nFirst line of commit message must not empty! !")
    exit(1)

platform = commit[0].lstrip()[1:-1].split("]")[0]
types = commit[0].lstrip()[1:-1].split("]")[1].lstrip()[1:]
if types not in support_type:
    print("Reject!!!! \nPlease select type in {} !".format(support_type))
    exit(1)

if platform not in support_plat:
    print("Reject!!!! \nPlease select platform in {} !".format(support_plat))
    exit(1)

for index in range(1, len(commit)):
    commit_line = commit[index]
    if commit_line.startswith("[Description"):
        format_dict["Description"] = True
    if commit_line.startswith("[Root"):
        format_dict["Root Cause"] = True
    if commit_line.startswith("[Solution"):
        format_dict["Solution"] = True
    if commit_line.startswith("[JIRA"):
        format_dict["JIRA"] = True
    if commit_line.startswith("[Test"):
        format_dict["Test"] = True

for key, value in format_dict.items():
    if not value:
        print("Reject!!!! \nLost \"{}\" field in commit!".format(key))
        exit(1)
exit(0)
# openbmc-init-build-env文件或setup文件:
title_num=$(sed -n '/\[commit\]/p' .git/config | wc | awk -F' ' '{print $1}')
file_num=$(sed -n '/template = \.git\/commit_template.txt/p' .git/config | wc | awk -F' ' '{print $1}')
if ! ([ "$title_num" -gt 0 ] && [ "$file_num" -gt 0 ]) ; then
    echo "[commit]" >> .git/config
    echo "        template = .git/commit_template.txt" >> .git/config
fi

if [ -f ".commit_template.txt" ];then
    cp .commit_template.txt .git/commit_template.txt
fi

if [ -f ".commit-msg-hooks.sh" ];then
    chmod 777 .commit-msg-hooks.sh
    cp .commit-msg-hooks.sh .git/hooks/commit-msg ###### git commit触发
fi

if [ -f ".commit-msg-check.py" ];then
    chmod 777 .commit-msg-check.py
    cp .commit-msg-check.py .git/hooks/commit-msg-check.py
fi

#如下在项目目录:
#source openbmc-init-build-env meta-hua/meta-whitebox
#cat .git/config
#[commit]
#        template = .git/commit_template.txt

在这里插入图片描述

3.ssh免密登录(不是https):whoami,adduser,su,-i

ssh可以免密码,但要配置公钥到github上。
在这里插入图片描述
如下一行(linux中没有.exe)是在.ssh文件夹中(原来只有known_hosts文件)生成两个id文件。
在这里插入图片描述
在这里插入图片描述
如下两个ip是一台机器两个docker,为什么询问root密码而不是别的密码?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.访问dfs这个文件系统只需读1.txt这个文件就行了,读的方式是dfs:/1.txt,就能读到1.txt全部内容,他是如何获取这个全部内容的呢?如读前1/3内容,就去看是一号文件块,然后在原数据信息里会记录一号文件块在a和c这两台机器上,它就会到a或c上去获取文件内容,对于使用这个文件的人,只需去输入这样的一个文件路径就能进行文件读取了,不用关心底层文件是怎么分片和怎么存储到每台机器上,这就是DFS即分布式文件系统也是文件系统,像windows右击磁盘属性,可看到是NTFS文件系统格式。

2.计算红楼梦书中林黛玉出现的数量,怎么做?一种方法是一个字一个字去读,遇到林黛玉记一个1。大数据框架提出新计算方式叫MapReduce即MR:把红楼梦10万个字分成10份(10个小学生),每个小学生就是一个mapper,他分的任务把这个过程叫做map。reduce就是将每个小学生数出来林黛玉的数量进行汇总,有一个reducer(这10个小学生中的任意1个)进行数量相加,10个数相加瞬间算完。
在这里插入图片描述
A通过ssh首次连接到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件(~/.ssh文件夹下原本有known_hosts)中。以后A再连接B,B依然会传递给A一个公钥2,OpenSSH会对比公钥1与公钥2 是否相同来进行验证,如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。
在这里插入图片描述
A通过ssh登陆B时提示 Host key verification failed,原因:A的known_hosts文件中记录的B的公钥1 与 连接时B传过来的公钥2不匹配。解决方法:
方法一:删除A的known_hosts文件中记录的B的公钥(手动进行,不适用于自动化部署)。rm -rf ~/.ssh/known_hosts
方法二:修改配置文件,在ssh登陆时不通过known_hosts文件进行验证(安全性有所降低),修改完需重启机器。vi ~/.ssh/config ,添加以下两行代码:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null


命令行:ssh localhost (root/普通用户登陆自己输入root/普通密码,不能免密登录自己),如下配置后再输入ssh localhost就不需要登录密码,-t参数指定要生成的密钥类型,-P密码"表示没有,-f是密钥的生成后的保存文件位置。

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  #生成如下两个文件

在这里插入图片描述

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

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

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

相关文章

《王者荣耀》国际服全球上线《Honor of Kings》海外下载榜首

原标题&#xff1a;《Honor of Kings》全球上线&#xff0c;国际玩家见证中国游戏魅力 易采游戏网6月23日独家消息&#xff1a;《王者荣耀》国际服《Honor of Kings》正式在全球160多个国家和地区上线&#xff0c;标志着这款源自中国的热门手机游戏迈向了国际舞台。尤其在加拿大…

Java面试八股之JVM永久代会发生垃圾回收吗

JVM永久代会发生垃圾回收吗 JVM的永久代&#xff08;PermGen&#xff09;在Java 8之前是存在的一部分&#xff0c;主要用于存储类的元数据、常量池、静态变量等。在这些版本中&#xff0c;永久代确实会发生垃圾回收&#xff0c;尤其是在永久代空间不足或超过某个阈值时&#x…

我在高职教STM32——LCD液晶显示(3)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

【Linux详解】冯诺依曼架构 | 操作系统设计 | 斯坦福经典项目Pintos

目录 一. 冯诺依曼体系结构 (Von Neumann Architecture) 注意事项 存储器的意义&#xff1a;缓冲 数据流动示例 二. 操作系统 (Operating System) 操作系统的概念 操作系统的定位与目的 操作系统的管理 系统调用和库函数 操作系统的管理&#xff1a; sum 三. 系统调…

数据类型 运算符

基本数据类型与引用数据类型的区分 存储内容&#xff1a; 基本数据类型&#xff1a;直接存储实际的数据值&#xff0c;如整数、浮点数、字符等。引用数据类型&#xff1a;存储对象的引用&#xff08;内存地址&#xff09;&#xff0c;而不是对象本身。 内存分配&#xff1a; 基…

Qt——系统

目录 概述 事件 鼠标事件 进入、离开事件 按下事件 释放事件 双击事件 移动事件 滚轮事件 按键事件 单个按键 组合按键 定时器 QTimerEvent QTimer 窗口事件 文件 输入输出设备 文件读写类 文件和目录信息类 多线程 常用API 线程安全 互斥锁 条件变量…

matplotlib之常见图像种类

Matplotlib 是一个用于绘制图表和数据可视化的 Python 库。它支持多种不同类型的图形&#xff0c;以满足各种数据可视化需求。以下是一些 Matplotlib 支持的主要图形种类&#xff1a; 折线图&#xff08;Line Plot&#xff09;&#xff1a; 用于显示数据随时间或其他连续变量的…

珈和科技和比昂科技达成战略合作,共创智慧农业领域新篇章

6月14日&#xff0c;四川省水稻、茶叶病虫害监测预警与绿色防控培训班在成都蒲江举办。本次培训班由四川省农业农村厅植物保护站主办&#xff0c;蒲江县农业农村局、成都比昂科技筹办。四川省农业农村厅植物保护站及四川省14个市州36个县植保站负责人进行了观摩学习。 武汉珈…

Python中的性能分析和优化

在前几篇文章中&#xff0c;我们探讨了Python中的异步编程和并发编程&#xff0c;以及如何结合使用这些技术来提升程序性能。今天&#xff0c;我们将深入探讨如何分析以及优化Python代码的性能&#xff0c;确保应用程序的高效运行&#xff01; 性能分析的基本工具和方法 在进…

[系统运维|Xshell]宿主机无法连接上NAT网络下的虚拟机进行维护?主机ping不通NAT网络下的虚拟机,虚拟机ping的通主机!解决办法

遇到的问题&#xff1a;主机ping不通NAT网络下的虚拟机&#xff0c;虚拟机ping的通主机 服务器&#xff1a;Linux&#xff08;虚拟机&#xff09; 主机PC&#xff1a;Windows 虚拟机&#xff1a;vb&#xff0c;vm测试过没问题&#xff0c;vnc没测试不清楚 虚拟机网络&#xff1…

cve-2015-3306-proftpd-vulfocus

1.原理 proftp是用于搭建基于ftp协议的应用软件 ProFTPD是ProFTPD团队的一套开源的FTP服务器软件。该软件具有可配置性强、安全、稳定等特点。 ProFTPD 1.3.5中的mod_copy模块允许远程攻击者通过站点cpfr和site cpto命令读取和写入任意文件。任何未经身份验证的客户端都可以…

牛客周赛Round48

第一题 A-小红的整数自增 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 小红拿到了三个正整数。她准备进行若干次操作&#xff0c;每次操作选择一个元素加1。小红希望最终三个数相等&#xff0c;请你帮小红求出最小的操作次数。 思路&#x…

Spring Boot + WebSocket 实现 IM 即时通讯

文章目录 1. 项目环境准备2. 配置WebSocket3. 创建消息处理器4. 创建消息类5. 创建前端页面6. 启动应用并测试7. 分析与扩展结论 &#x1f389;欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;…

优选算法刷题笔记 2024.6.10-24.6.20

一、双指针算法(快慢指针,对撞指针) 艹&#xff0c;CSDN吞了我是十三题笔记&#xff01;&#xff01;&#xff01; 二、滑动窗口(滑动窗口) 1、找到字符串中所有字母异位词 class Solution {public List<Integer> findAnagrams(String s, String p) {int[] hash1 new in…

示例:WPF中应用DependencyPropertyDescriptor监视依赖属性值的改变

一、目的&#xff1a;开发过程中&#xff0c;经常碰到使用别人的控件时有些属性改变没有对应的事件抛出&#xff0c;从而无法做处理。比如TextBlock当修改了IsEnabled属性我们可以用IsEnabledChanged事件去做对应的逻辑处理&#xff0c;那么如果有类似Background属性改变我想找…

Kimichat使用案例026:AI翻译英语PDF文档的3种方法

文章目录 一、介绍二、腾讯交互翻译TranSmart https://transmart.qq.com/三、沉浸式翻译三、谷歌网页翻译一、介绍 短的文章,直接丢进kimichat、ChatGPT里面很快就可以翻译完成,而且效果很佳。但是,很长的PDF文档整篇需要翻译,怎么办呢? 二、腾讯交互翻译TranSmart https…

Kafka中的数据本身就是倾斜的,使用FlinkSQL该如何处理

又是经历了一段不太平的变动&#xff0c;最近算是稳定了点&#xff0c;工作内容又从后端开发转换成了sql boy&#xff0c;又要开始搞大数据这一套了。不同的是之前写实时任务的时候都是用的java代码&#xff0c;新环境却更加偏向与使用flink sql 解决&#xff0c;所以记录下使用…

Rsync未授权访问-vulfocus

1.原理 Rsync是linux上文件传输的协议&#xff0c;如果有返回直接可以看到&#xff0c;部分主机使用协议的时候不会加密码&#xff0c;就容易造成未授权访问漏洞 2.复现 打开vulfocus.io,搜索rsync关键字&#xff0c;打开环境 在自己的主机上去连接远程服务器&#xff1a; r…

BFS:解决多源最短路问题

文章目录 什么是多源最短路问题&#xff1f;1.矩阵2.飞地的数量3.地图的最高点4.地图分析总结 什么是多源最短路问题&#xff1f; 多源最短路问题&#xff08;Multi-Source Shortest Path Problem&#xff0c;MSSP&#xff09;是图论中的一个经典问题&#xff0c;它的目标是在…

正则表达式,linux文本三剑客

正则表达式匹配的是文本内容&#xff0c;linux的文本三剑客都是针对文本内容&#xff0c;按行进行匹配 文本三剑客&#xff1a; grep 过滤文本内容 sed 针对文本内容进行增删改查 awd 按行取列 一.grep命令 作用就是使用正则表达式来匹配文本内容 -m 数字&#xff1a;匹配…