【git1】指令,commit,免密

文章目录

  • 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    # 覆盖commitgit 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 --continuegit 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"] = Trueif commit_line.startswith("[Root"):format_dict["Root Cause"] = Trueif commit_line.startswith("[Solution"):format_dict["Solution"] = Trueif commit_line.startswith("[JIRA"):format_dict["JIRA"] = Trueif commit_line.startswith("[Test"):format_dict["Test"] = Truefor 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 ]) ; thenecho "[commit]" >> .git/configecho "        template = .git/commit_template.txt" >> .git/config
fiif [ -f ".commit_template.txt" ];thencp .commit_template.txt .git/commit_template.txt
fiif [ -f ".commit-msg-hooks.sh" ];thenchmod 777 .commit-msg-hooks.shcp .commit-msg-hooks.sh .git/hooks/commit-msg ###### git commit触发
fiif [ -f ".commit-msg-check.py" ];thenchmod 777 .commit-msg-check.pycp .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.mzph.cn/diannao/32883.shtml

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

相关文章

DVWA-XSS(Stored)-httponly分析

拿DVWA的XSS为例子 httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。 接DVWA的分析&#xff0c;发现其实Impossible的cookie都是设置的httponly1&#xff0c;samesite1. 这两个参数的意思参考Set-Cookie HttpOnly:阻止 JavaScript 通过 Documen…

Java项目:基于SSM框架实现的精品酒销售管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的精品酒销售管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

文本三剑客—sed命令

sed命令 一、概念 sed是一种流编辑器&#xff0c;一次处理一行内容。 处理方式&#xff1a;一行一行处理&#xff0c;处理完当前行&#xff0c;才会处理下一行&#xff0c;直到文件末尾。 如果只是展示&#xff0c;会放在缓冲区&#xff08;模式空间&#xff09;&#xff0…

微信公众号 H5授权登录实现(最详细)

一、微信公众号 &#xff08;一&#xff09;基础信息 微信授权类型 自己的网站、APP等第三方&#xff0c;要实现接入微信授权登录&#xff0c;有多种方式&#xff1a;微信公众号&#xff08;网页&#xff09;、微信小程序、微信开放平台&#xff08;APP&#xff09;等等。 【…

面试:关于word2vec的相关知识点Hierarchical Softmax和NegativeSampling

1、为什么需要Hierarchical Softmax和Negative Sampling 从输入层到隐含层需要一个维度为NK的权重矩阵&#xff0c;从隐含层到输出层又需要一个维度为KN的权重矩阵&#xff0c;学习权重可以用反向传播算法实现&#xff0c;每次迭代时将权重沿梯度更优的方向进行一小步更新。但…

100337. 最大化子数组的总成本

Powered by:NEFU AB-IN Link 文章目录 100337. 最大化子数组的总成本题意思路代码 100337. 最大化子数组的总成本 题意 给你一个长度为 n 的整数数组 nums。 子数组 nums[l…r]&#xff08;其中 0 < l < r < n&#xff09;的 成本 定义为&#xff1a; cost(l, r)…

详细解析MATLAB和Simulink中的文件格式:mat, mdl, mexw32, 和 m 文件

matlab 探索MATLAB和Simulink中的文件格式&#xff1a;MAT, MDL, MEXW32, 和 M 文件**MAT 文件 (.mat)****MDL 文件 (.mdl)****MEX 文件 (.mexw32/.mexw64)****M 文件 (.m)****总结** 探索MATLAB和Simulink中的文件格式&#xff1a;MAT, MDL, MEXW32, 和 M 文件 当你开始使用M…

Python 虚拟环境 requirements.txt 文件生成 ;pipenv导出pip安装文件

搜索关键词: Python 虚拟环境Pipenv requirements.txt 文件生成;Pipenv 导出 pip requirements.txt安装文件 本文基于python版本 >3.9 文章内容有效日期2023年01月开始(因为此方法从这个时间开始是完全ok的) 上述为pipenv的演示版本 使用以下命令可精准生成requirement…

【Vue】图片懒加载的实现

封装全局指令img-lazy // 定义懒加载插件 import { useIntersectionObserver } from vueuse/coreexport const lazyPlugin {install (app) {// 懒加载指令逻辑app.directive(img-lazy, {mounted (el, binding) {// el: 指令绑定的那个元素 img// binding: binding.value 指令…

總結電磁學

參考: 陈曦<<电磁学讲义>>http://ithatron.phys.tsinghua.edu.cn/downloads/electricty_and_magnetism.pdf 4 电磁学的实验基础 我们已经回顾了经典物理学的框架。在现代物理学中,人们经常从一些基本的原则(如相对论协变性、对称性等等)出发来建立模型,然后…

Java8 --- Gradle7.4整合IDEA

目录 一、Gradle整合IDEA 1.1、Groovy安装 1.1.1、配置环境变量 ​编辑 1.2、创建项目 ​编辑 1.3、Groovy基本语法 1.3.1、基本语法 1.3.2、引号 1.3.3、语句结构 1.3.4、数据类型 1.3.5、集合操作 1.4、使用Gradle创建普通Java工程 1.5、使用Gradle创建Java ss…

深入理解go语言反射机制

1、前言 每当我们学习一个新的知识点时&#xff0c;一般来说&#xff0c;最关心两件事&#xff0c;一是该知识点的用法&#xff0c;另外就是使用场景。go反射机制作为go语言特性中一个比较高级的功能&#xff0c;我们也需要从上面两个方面去进行学习&#xff0c;前者告诉我们如…

如何在Java中进行网络编程?

如何在Java中进行网络编程&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Java中进行网络编程&#xff0c;这是实现客户端和服…

Vite: 关于静态资源的处理机制

概述 随着前端技术的飞速发展&#xff0c;项目规模和复杂度不断增加&#xff0c;如何高效地处理静态资源成为了提升开发效率和应用性能的关键Vite&#xff0c;作为新一代前端构建工具&#xff0c;以其轻量级、快速启动和热更新著称&#xff0c;同时也为静态资源的管理和优化提…

使用 axios 进行 HTTP 请求

使用 axios 进行 HTTP 请求 文章目录 使用 axios 进行 HTTP 请求1、介绍2、安装和引入3、axios 基本使用4、axios 发送 GET 请求5、axios 发送 POST 请求6、高级使用7、总结 1、介绍 什么是 axios axios 是一个基于 promise 的 HTTP 库&#xff0c;可以用于浏览器和 Node.js 中…

计算机组成入门知识

前言&#x1f440;~ 数据库的知识点先暂且分享到这&#xff0c;接下来开始接触计算机组成以及计算机网络相关的知识点&#xff0c;这一章先介绍一些基础的计算机组成知识 一台计算机如何组成的&#xff1f; 存储器 CPU cpu的工作流程 主频 如何衡量CPU好坏呢&#xff1f…

创意产业如何应对AI的挑战。

最近的一个月&#xff0c;音乐领域迎来了一个革命性的变化。一系列音乐大模型轮番上线&#xff0c;它们以惊人的创作能力&#xff0c;将素人生产音乐的门槛降到了最低。这些AI音乐模型的出现&#xff0c;引发了关于AI是否会彻底颠覆音乐圈的讨论。然而&#xff0c;短暂的兴奋过…

我的常见问题记录

1,maven在idea工具可以正常使用,在命令窗口执行出现问题 代码: E:\test-hello\simple-test>mvn clean compile [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for org.consola:simple-test:jar…

【从0实现React18】 (三) 初探reconciler 带你初步探寻React的核心逻辑

Reconciler 使React核心逻辑所在的模块&#xff0c;中文名叫协调器&#xff0c;协调(reconciler)就是diff算法的意思 reconciler有什么用&#xff1f; 在前端框架出现之前&#xff0c;通常会使用 jQuery 这样的库来开发页面。jQuery 是一个过程驱动的库&#xff0c;开发者需要…