Git1指令,分支,ssh免密登录
Posted 码农编程录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git1指令,分支,ssh免密登录相关的知识,希望对你有一定的参考价值。
文章目录
- 1.init/add/commit/pull/push,status/diff/log/reflog,reset/checkout/clone:工缓归
- 2.分支操作:git branch -v(默认)查看本地分支
- 3.idea操作git:create new project-Maven
- 4.ssh免密登录(不是https):whoami,adduser,su,-i
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免密登录的主要内容,如果未能解决你的问题,请参考以下文章