【Git1】指令,分支,ssh免密登录
文章目錄
- 1.init/add/commit/pull/push,status/diff/log/reflog,reset/checkout/clone:工緩歸
- 2.分支操作:git branch -v(默認(rèn))查看本地分支
- 2.1 分支打tag:更新本地和gitlab同步
- 3.idea操作git:create new project-Maven
- 4.ssh免密登錄(不是https):whoami,adduser,su,-i
- 4.1 應(yīng)用:每臺(tái)機(jī)器兩兩連接(大數(shù)據(jù)集群配置)
1.init/add/commit/pull/push,status/diff/log/reflog,reset/checkout/clone:工緩歸
SVN:集中式版本控制即保存在一臺(tái)電腦,容易故障或連的客戶端多了會(huì)卡頓。git分布式:完整倉庫分布在不同人電腦主機(jī)上,遠(yuǎn)程倉庫只是交換意見的地方。Git官網(wǎng):https://git-scm.com/ 。win版鏈接:https://pan.baidu.com/s/19g5I5j6UFKfkfxDjllQ8ng 提取碼:7uaq 。
git log git reset c5c7ac46262165ced60497bbfa8b8a0949ef5956 git status git add meta-huaqin/meta-hollywood/recipes-plats/hal/files/hal_temp.py git commit git log git push origin a-dev -fgit commit -m '提交信息' --no-verify //可以跳過代碼檢查 git commit --amend -m '提交信息' --no-verify //對上一次的提交進(jìn)行修改 git stash save a git stash list git status git pull origin master (此時(shí)git log是遠(yuǎn)程最新commit) git stash pop a git show
桌面新建名為gitdemo文件夾通過vscode軟件打開,vscode安裝兩個(gè)插件:Git History,GitLens。如下執(zhí)行后即創(chuàng)建了本地版本庫,vscode左下角出現(xiàn)master分支。
新建1.txt文件。git add 文件前先ctrl+s,git diff,git status,git log查看需提交的文件路徑。
一般不用git commit -m,直接git commit進(jìn)入vi界面(進(jìn)入前要git config core.editor vim設(shè)一下vi模式),vi如下寫法,注意在最上面寫。
如果git commit失敗執(zhí)行如下添加簽名,并用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/configgithub新建名為gitdemo倉庫,復(fù)制下面兩行到vscode終端執(zhí)行:git remote add/remove添加/刪除一個(gè)遠(yuǎn)端倉庫,origin名字可代替后面github倉庫(這是github倉庫是https版本,換成ssh版本并配置key免密登錄),git remote -v顯示所有遠(yuǎn)程倉庫。
git push將本地歸檔區(qū)內(nèi)容提交到遠(yuǎn)程github倉庫。因?yàn)椴捎胔ttps會(huì)提示登錄github。關(guān)聯(lián)后就可以直接git pull/push 空(git clone不需要自己創(chuàng)建本地版本庫,會(huì)自動(dòng)和遠(yuǎn)程版本庫進(jìn)行關(guān)聯(lián))。
git status查看工作區(qū)變更是紅色(緩存區(qū)是綠色)。git reset --mixed commithash(這個(gè)commithash之前都沒了,默認(rèn)mixed)或HEAD^^(回退2個(gè)版本)(緩存區(qū)和歸檔區(qū)都回滾)。git reset --hard硬還原前面回滾掉的版本,commithash因?yàn)楸换貪L掉了,用git log 空(每次提交commit信息)查不到,用git reflog 空(所有操作信息)查,三個(gè)區(qū)都回滾了保持一致。git reset --soft只回滾歸檔區(qū)。將中間一次commithash扣掉,用git revert commithash,這個(gè)commithash的三個(gè)區(qū)都被扣掉。
2.分支操作:git branch -v(默認(rèn))查看本地分支
同一分支上git push 出現(xiàn) [rejected] 分支沖突,解決是git pull(會(huì)出現(xiàn)Auto-merging自動(dòng)合并,git pull = git fetch + git merge),進(jìn)行討論刪除,再commit和push。
如上先切換到master上再如下本地分支的合并,刪除分支。git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>,git push origin dev:dev 和 git push origin dev 等效,因?yàn)楸镜胤种Ш瓦h(yuǎn)程分支同名可以省略冒號(hào)部分。
2.1 分支打tag:更新本地和gitlab同步
git tag //查看本地分支標(biāo)簽 git tag -a s3ip-v0.02.00 -m "s3ip-v0.02.00 release" git checkout -b s3ip-v0.02.00-release 編譯代碼,image刷到目標(biāo)機(jī)器測試功能 創(chuàng)建壓縮包(image,md5,releaseNote,自測報(bào)告),把壓縮包發(fā)給pm并上傳W:\3.OpenBMC\Project\S3IP\release 上傳tag(git push origin s3ip-v0.02.00)和branch3.idea操作git:create new project-Maven
選中如下右擊New-.ignorefile-.gitignorefile(Git),選中Example…(.idea,.iml)。之后可以選中文件夾或文件右擊Add to .gitignore file。如下讓工程關(guān)聯(lián)git,多了.git文件夾。
選中文件/文件夾右擊Git-Add,Add一次就行(在命令行里修改了,每次都要add),后面只要選中整個(gè)工程右擊Git-Commit。
撤銷剛寫的,一個(gè)文件ctrl+z可以,很多文件不行。選中整個(gè)工程右擊Git-Revert后選文件或文件夾(同時(shí)撤銷工作區(qū)和暫存區(qū),因?yàn)槟J(rèn)一直Add進(jìn)了暫存區(qū))。如下點(diǎn)擊后選擇Hard。
選中整個(gè)工程右擊show in Explorer(在git bash中g(shù)it reflog查看)。再選中整個(gè)工程右擊Git-Repository-Reset HEAD。
所有分支修改了都要commit,合并時(shí)在master分支上選中整個(gè)工程右擊Git-Repository-Merge changes,選擇dev分支。如果沖突(相同文件相同行不同),找人商量解決,改完沖突要重新Add再commit。
4.ssh免密登錄(不是https):whoami,adduser,su,-i
ssh可以免密碼,但要配置公鑰到github上。
如下一行(linux中沒有.exe)是在.ssh文件夾中(原來只有known_hosts文件)生成兩個(gè)id文件,如下ssh-rsa也要復(fù)制進(jìn)去。
如下ssh免密登錄原理:crt和xshell就是通過SSH登錄Server,ssh-keygen生成公鑰和私鑰,如下進(jìn)行1和2就可以免密登錄了。
如下兩個(gè)ip是一臺(tái)機(jī)器兩個(gè)docker,為什么詢問root密碼而不是別的密碼?如下在0.7窗口。
如下在0.8窗口。
如下在0.7窗口。
4.1 應(yīng)用:每臺(tái)機(jī)器兩兩連接(大數(shù)據(jù)集群配置)
如何配置ssh的key?方法1:每臺(tái)生成再發(fā)給其他6臺(tái),需要每臺(tái)都登陸并生成再發(fā)給其他機(jī)器。方法2:公鑰復(fù)制到authorized_key中,私鑰id_rsa,每臺(tái)都同一把鎖和鑰匙,方法2好。
如下JenKins集群例子也是采用2好,master領(lǐng)到Task任務(wù)后,worker才是啟動(dòng)起來的容器(一開始不存在),并且worker要去git中拉代碼。
總結(jié)
以上是生活随笔為你收集整理的【Git1】指令,分支,ssh免密登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C/C++17】_ooci.h,_oo
- 下一篇: 【Docker1】指令,docker-c