Git1指令,分支,ssh免密登录

Posted 码农编程录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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查看为空)
git pull -p  //拉取分支和tag


桌面新建名为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

如果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

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

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中拉代码。

以上是关于Git1指令,分支,ssh免密登录的主要内容,如果未能解决你的问题,请参考以下文章

Git1指令,分支,ssh免密登录

SSH免密登录设置

linux配置ssh免密登录实现

Mac设置ssh免密登陆远程服务器

Mac设置ssh免密登陆远程服务器

Mac设置ssh免密登陆远程服务器