• 【Git1】指令,分支,ssh免密登录



    1.init/add/commit/pull/push,status/diff/log/reflog,reset/checkout/clone:工缓归

    SVN:集中式版本控制即保存在一台电脑,容易故障或连的客户端多了会卡顿。git分布式:完整仓库分布在不同人电脑主机上,远程仓库只是交换意见的地方。Git官网:https://git-scm.com/ 。win版链接:https://pan.baidu.com/s/19g5I5j6UFKfkfxDjllQ8ng 提取码:7uaq 。

    git log
    git reset c5c7ac46262165ced60497bbfa8b8a0949ef5956
    git status
    git add  meta/meta-holl/recipes-plats/hal/files/hal_temp.py
    git commit
    git log
    git push origin a-dev -f
    
    git commit -m '提交信息' --no-verify    //可以跳过代码检查
    git commit --amend -m '提交信息' --no-verify    //对上一次的提交进行修改
    git stash save a
    git stash list
    git status
    git pull origin master (此时git log是远程最新commit)
    git stash pop stash@{0} (没有冲突才能pop出来且git stash list查看为空)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述
    桌面新建名为gitdemo文件夹通过vscode软件打开,vscode安装两个插件:Git History,GitLens。如下执行后即创建了本地版本库,vscode左下角出现master分支。
    在这里插入图片描述
    新建1.txt文件。git add 文件前先ctrl+s,git diff,git status,git log查看需提交的文件路径。
    在这里插入图片描述
    一般不用git commit -m,直接git commit进入vi界面(进入前要git config core.editor vim设一下vi模式),vi如下写法,注意在最上面写。

    [Type-Platform] Description
    
    Review: reviewer name
    
    JiraID : xxxx
    
    TestPlan : 
    
    参数说明如下:
    Type: 
    feat:新增功能
    fix:bug 修复
    docs:文档更新
    style:不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
    refactor:重构代码(既没有新增功能,也没有修复 bug)
    perf:性能, 体验优化
    test:新增测试用例或是更新现有测试
    build:主要目的是修改项目构建系统(例如 新加项目,编译配置等)的提交
    ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
    revert:回滚某个更早之前的提交
    
    Platform: kestrel/hollywood/common …
    Description : commit info
    JiraID : Jira number
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    如果git commit失败执行如下添加签名,并用git config --global --list查看(--global可换成--local--list可换为-l)。

    git config --global user.name  "follow" 
    git config --global user.email "follow@126.com" 
    git config --global credential.helper store ; cat ~/.gitconfig
    echo "[credential]" >> .git/config
    echo "    helper = store" >> .git/config
    
    • 1
    • 2
    • 3
    • 4
    • 5

    github新建名为gitdemo仓库,复制下面两行到vscode终端执行:git remote add/remove添加/删除一个远端仓库,origin名字可代替后面github仓库(这是github仓库是https版本,换成ssh版本并配置key免密登录),git remote -v显示所有远程仓库。

    git push本地归档区内容提交到远程github仓库。因为采用https会提示登录github。关联后就可以直接git pull/push 空(git clone不需要自己创建本地版本库,会自动和远程版本库进行关联)。

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

    2.分支操作:git branch -v(默认)查看本地分支

    在这里插入图片描述
    同一分支上git push 出现 [rejected] 分支冲突,解决是git pull(会出现Auto-merging自动合并,git pull = git fetch + git merge),进行讨论删除,再commit和push
    在这里插入图片描述
    在这里插入图片描述
    如上先切换到master上再如下本地分支的合并,删除分支。git push <远程主机名> <本地分支名>:<远程分支名>,git push origin dev:dev 和 git push origin dev 等效,因为本地分支和远程分支同名可以省略冒号部分。
    在这里插入图片描述

    2.1 分支打tag:更新本地和gitlab同步

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

    3.idea操作git:create new project-Maven

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    选中如下右击New-.ignorefile-.gitignorefile(Git),选中Example…(.idea,.iml)。之后可以选中文件夹或文件右击Add to .gitignore file。如下让工程关联git,多了.git文件夹。
    在这里插入图片描述
    选中文件/文件夹右击Git-Add,Add一次就行(在命令行里修改了,每次都要add),后面只要选中整个工程右击Git-Commit。
    在这里插入图片描述
    撤销刚写的,一个文件ctrl+z可以,很多文件不行。选中整个工程右击Git-Revert后选文件或文件夹(同时撤销工作区和暂存区,因为默认一直Add进了暂存区)。如下点击后选择Hard。
    在这里插入图片描述
    选中整个工程右击show in Explorer(在git bash中git reflog查看)。再选中整个工程右击Git-Repository-Reset HEAD。
    在这里插入图片描述
    所有分支修改了都要commit,合并时在master分支上选中整个工程右击Git-Repository-Merge changes,选择dev分支。如果冲突(相同文件相同行不同),找人商量解决,改完冲突要重新Add再commit。
    在这里插入图片描述

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

    ssh可以免密码,但要配置公钥到github上。
    在这里插入图片描述
    如下一行(linux中没有.exe)是在.ssh文件夹中(原来只有known_hosts文件)生成两个id文件,如下ssh-rsa也要复制进去。
    在这里插入图片描述
    在这里插入图片描述
    如下ssh免密登录原理:crt和xshell就是通过SSH登录Server,ssh-keygen生成公钥和私钥,如下进行1和2就可以免密登录了。
    在这里插入图片描述
    如下两个ip是一台机器两个docker,为什么询问root密码而不是别的密码?如下在0.7窗口。
    在这里插入图片描述
    在这里插入图片描述
    如下在0.8窗口。
    在这里插入图片描述
    如下在0.7窗口。
    在这里插入图片描述

    4.1 应用:每台机器两两连接(大数据集群配置)

    如何配置ssh的key?方法1:每台生成再发给其他6台,需要每台都登陆并生成再发给其他机器。方法2:公钥复制到authorized_key中,私钥id_rsa,每台都同一把锁和钥匙,方法2好。
    在这里插入图片描述
    如下JenKins集群例子也是采用2好,master领到Task任务后,worker才是启动起来的容器(一开始不存在),并且worker要去git中拉代码。
    在这里插入图片描述

  • 相关阅读:
    PMP证书在国内已经泛滥了,大家怎么看?
    OpenCV 实现透视变换
    python学习29:python中的字典dict
    SpringMvc决战-【SpringMVC之自定义注解】
    Python x-www-form-urlencoded post
    使用Net将HTML简历导出为PDF格式
    【Linux网络编程】高级I/O
    自动化测试------selenium
    操作系统:操作系统概论
    CADD课程学习(5)-- 构建靶点已知的化合结构(ChemDraw)
  • 原文地址:https://blog.csdn.net/weixin_43435675/article/details/94360340