国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Git&Gerrit使用筆記

這篇具有很好參考價(jià)值的文章主要介紹了Git&Gerrit使用筆記。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、簡(jiǎn)單介紹

1、Git

????????全稱Global Information Tracker,或者?stupid content tracker,分布式版本控制系統(tǒng)。

????????Git沒(méi)有中央服務(wù)器,每個(gè)協(xié)作開(kāi)發(fā)者的電腦都是一個(gè)完整的版本庫(kù),工作時(shí)無(wú)需聯(lián)網(wǎng)只需推送。Git可以記錄所有的變更記錄,可以方便查詢和回滾歷史版本。

2、Gerrit

????????Gerrit是建立在Git之上、基于Web的代碼審查工具。

????????Geriit同Git免費(fèi)、開(kāi)源,作為網(wǎng)頁(yè)版代碼審查軟件,向協(xié)助開(kāi)發(fā)者提供代碼審查平臺(tái),以審閱修改后的程序代碼決定是否能夠提交Merge,或者退回修改完善代碼,從而保證代碼質(zhì)量。

二、Gerrit服務(wù)器搭建

(23條消息) Gerrit代碼審核服務(wù)器搭建全過(guò)程_girret_hanpfei的博客-CSDN博客

三、本地開(kāi)發(fā)配置

1、安裝Git

????????下載鏈接:Git - Downloads (git-scm.com)。

????????根據(jù)本地機(jī)器OS版本下載相對(duì)應(yīng)版本,并根據(jù)個(gè)人偏好進(jìn)行Git設(shè)置。

2、配置Git

2.1、配置用戶名和郵箱

git config --global user.name "Your Name" git config --global user.email "Your E-mail Address"

2.2、本地創(chuàng)建SSH key

????????本地 Git 倉(cāng)和 GitHub 倉(cāng)通過(guò)SSH加密傳輸,因此需要配置驗(yàn)證信息。進(jìn)入Git工作目錄,郵件“Git Bash Here”打開(kāi)Git終端,執(zhí)行以下命令生成 SSH Key:?????

ssh-keygen -t rsa -b 2048 -C "郵箱地址"

這里rsa也可以換成其他的加密算法

???之后在Windows用戶目錄下生成.ssh文件夾。

2.3、Gerrit添加SSH key

·????????登錄遠(yuǎn)程Gerrit服務(wù)器,配置自己的賬戶信息,添加SSH key。

git配置gerrit,git,筆記,elasticsearch

四、Git常用命令

1、本地倉(cāng)操作

1.1、git init

????????本地建倉(cāng),對(duì)本地當(dāng)前目錄進(jìn)行Git初始化。

????????如果需要建立本地倉(cāng)庫(kù)track自己的代碼修改,那么可以使用git init的方法建倉(cāng),然后將代碼拷貝至此文件夾中。

1.2、git add

????????將修改添加至?xí)捍鎱^(qū)。文件修改后,文件被保存在工作區(qū),通過(guò)git add命令將文件添加至?xí)捍鎱^(qū),以便于下一步commit。

# 將指定文件放入暫存區(qū) 
$ git add <file> 

# 將指定目錄下所有變化的文件,放入暫存區(qū) 
$ git add <directory> 

# 將當(dāng)前目錄下所有變化的文件,放入暫存區(qū) 
$ git add .

1.3、git commit

????????將修改提交至倉(cāng)庫(kù)區(qū)。修改經(jīng)過(guò)git add之后被保留在暫存區(qū),之后通過(guò)git commit進(jìn)行提交。git commit使用語(yǔ)法:

git commit <filename> -m "message"
可以指定某一個(gè)<filename>,或者不加<filename>直接提交當(dāng)前所有暫存區(qū)的內(nèi)容

-s:添加commit簽名
-m:添加提交說(shuō)明
--amend:撤銷(xiāo)上一次 commit,然后生成一個(gè)新的 commit
--fixup:當(dāng)前commit是以前某個(gè)commit的修正,執(zhí)行g(shù)it rebase后兩個(gè)commit合并一個(gè)
--no-edit:commit不改變之前commit message的內(nèi)容

2、本地倉(cāng)查看

2.1、git diff

????????查看文件/分支之間的差異。

# 查看工作區(qū)與暫存區(qū)的差異(默認(rèn)為--staged)
$ git diff <filename> --staged

# 查看暫存區(qū)與倉(cāng)庫(kù)區(qū)(當(dāng)前 commit) 的差異
$ git diff --cached

# 查看兩個(gè)commit的差異
$ git diff <commitBefore> <commitAfter>

# 查看工作區(qū)與某個(gè) commit 的差異(上一次commit:HEAD)
$ git diff <commit>

# 顯示兩次提交之間的差異
$ git diff [first-branch]...[second-branch]

# 查看工作區(qū)與當(dāng)前分支上一次提交的差異,但是局限于test文件
$ git diff HEAD -- ./test

# 查看topic分支與master分支最新提交之間的差異
$ git diff topic master(或者$ git diff topic..master)

# 查看自從topic分支建立以后,master分支發(fā)生的變化
$ git diff topic...master

2.2、git show

????????查看commit的內(nèi)容。

# 輸出某次提交的元數(shù)據(jù)和內(nèi)容變化
$ git show [commit]

$ git show 12a86bc38 # By revision
$ git show v1.0.1 # By tag
$ git show feature132 # By branch name
$ git show 12a86bc38^ # Parent of a commit
$ git show 12a86bc38~2 # Grandparent of a commit
$ git show feature132@{yesterday} # Time relative
$ git show feature132@{2.hours.ago} # Time relative

2.3、git log

????????查看提交歷史。

# 列出當(dāng)前分支n條版本歷史,不加-n則列出所有版本歷史
$ git log -n

# 列出某個(gè)文件的版本歷史,包括文件改名
$ git log --follow [file]

3、本地與遠(yuǎn)程倉(cāng)交互

3.1、git clone

????????克隆遠(yuǎn)程倉(cāng)庫(kù)到本地目錄。

$ git clone 遠(yuǎn)程倉(cāng)鏈接

3.2、git fetch

????????獲取遠(yuǎn)程倉(cāng)最新內(nèi)容下載到本地,不直接執(zhí)行合并操作,用戶決定是否合并。

git fetch <遠(yuǎn)程主機(jī)名> <分支名> 
如果省略分支名,那么將遠(yuǎn)程倉(cāng)更新全部取回本地

3.3、git pull

????????相當(dāng)于git fitch+git merge,獲取遠(yuǎn)程倉(cāng)最新內(nèi)容并直接合并,這樣可能會(huì)產(chǎn)生沖突,需要手動(dòng)解決。

git配置gerrit,git,筆記,elasticsearch

3.4、git push

????????將本地分支推送到遠(yuǎn)程倉(cāng)并合并,在本地commit完成后需要推送到遠(yuǎn)程時(shí)使用。

git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
如省略遠(yuǎn)程分支,那么本地分支將推送到與之存在追蹤關(guān)系的遠(yuǎn)程分支(通常兩者同名)
如該遠(yuǎn)程分支不存在,則會(huì)被新建

例如:
git push origin HEAD:refs/for/master
origin : 遠(yuǎn)程庫(kù)名
HEAD: 指向當(dāng)前本地工作分支的指針
refs/for: 提交代碼到服務(wù)器需code review才能merge
refs/heads:直接merge,無(wú)需code review

4、分支操作

4.1、git branch

????????用于分支操作。

# 列出所有分支,-a表示本地和遠(yuǎn)程所有分支,-r表示遠(yuǎn)程所有分支,不加參數(shù)表示本地
$ git branch [-a/-r]

# 新建分支
$ git branch 分支名

# 刪除分支,D表示強(qiáng)制刪除
$ git branch -d/D <分支名>

# 分支改名
$ git checkout -b 新名 舊名
$ git branch -d 舊名

4.2、git checkout

????????切換分支或者標(biāo)簽等。

# 創(chuàng)建并切換至新分支,不加-b則直接切換 
$ git checkout -b 新分支名

5、撤銷(xiāo)與回退

5.1、三個(gè)恢復(fù)等級(jí)

????????--soft 、--mixed以及--hard是三個(gè)恢復(fù)等級(jí)。

--soft:僅將頭指針恢復(fù),已經(jīng)add的暫存區(qū)及工作空間的代碼都不變 
--mixed:將頭恢復(fù)掉,已經(jīng)add的暫存區(qū)也會(huì)丟失掉,工作空間代碼不變。 
--hard:一切就全都恢復(fù)了,頭變,aad的暫存區(qū)消失,代碼恢復(fù)到以前狀態(tài)。

5.2、撤銷(xiāo)上一次commit提交

# 撤銷(xiāo)上一次commit, 不會(huì)撤銷(xiāo)git add 
$ git?reset?--soft head~1 

# 撤銷(xiāo)上一次commit, 同時(shí)撤銷(xiāo)git add 
$ git reset head~

5.3、回退到某一次commit提交

# 徹底回退到某一個(gè)commit 
$ git reset --hard <Commit-ID>

5.4、回退到上n次commit提交

# 當(dāng)前版本 
$ git reset --hard head 

# 回退到上一個(gè)版本 
$ git reset --hard HEAD^ 

# 回退到上上一個(gè)版本 
$ git reset --hard HEAD^^ 

# 回退到往上3個(gè)版本 
$ git reset --hard HEAD~3 

# 回退到往上10個(gè)版本 
$ git reset --hard HEAD~10

五、Gerrit使用流程

1、獲取服務(wù)器最新代碼

????????git clone "ssh:/用戶名@遠(yuǎn)程倉(cāng)IP:端口/倉(cāng)庫(kù)名" && scp -p -P 端口 用戶名@遠(yuǎn)程倉(cāng)IP:hooks/commit-msg "satool/.git/hooks/"。通過(guò)此命令獲取遠(yuǎn)程倉(cāng)代碼下載至本地,同時(shí)將commit-msg文件拷貝至本地。

2、本地修改與commit

????????本地完成修改之后通過(guò)git add添加至?xí)捍鎱^(qū),然后進(jìn)行commit提交。

3、推送至遠(yuǎn)程倉(cāng)

????????通過(guò)git push origin HEAD:refs/for/遠(yuǎn)程分支名,將本地修改提交至Gerrit進(jìn)行審視。refs/for的意義在于提交代碼到服務(wù)器之后需要經(jīng)過(guò)code review才能進(jìn)行merge,而refs/heads不需要,直接進(jìn)行merge。

4、添加Reviewers&CC

????????完成本地倉(cāng)推送至遠(yuǎn)程后,進(jìn)入Gerrit平臺(tái),添加Reviewers&CC,添加代碼代碼協(xié)作者進(jìn)行代碼審閱。

5、Merge合入

????????代碼提交完成審閱并+2確認(rèn)后,將顯示Ready to Submit狀態(tài),這個(gè)時(shí)候點(diǎn)擊Submit即可Merge合入。

git配置gerrit,git,筆記,elasticsearch

六、常見(jiàn)問(wèn)題

1、commit message缺少Signed-off-by信息

問(wèn)題原因:git commit提交的時(shí)候沒(méi)有帶上-s簽名參數(shù)。

解決辦法:git commit -s --amend --no-edit。

2、commit message缺少Change-Id信息

git配置gerrit,git,筆記,elasticsearch

?問(wèn)題原因:.git/hooks目錄下缺少commit-msg文件,往往是初次從遠(yuǎn)程服務(wù)器下載的時(shí)候沒(méi)有通過(guò)scp命令拷貝commit-msg文件。

解決辦法:scp -p -P 端口 用戶名@遠(yuǎn)程倉(cāng)庫(kù)IP:hooks/commit-msg "本地hooks目錄",先獲取commit-msg文件,然后再進(jìn)行ammend,git commit --amend --no-edit,那么將會(huì)附加一行Change-Id信息。

git配置gerrit,git,筆記,elasticsearch

3、獲取遠(yuǎn)程倉(cāng)后無(wú)法看到其他分支源碼

問(wèn)題原因:初次獲取遠(yuǎn)程倉(cāng)庫(kù)后默認(rèn)master主分支,顯示主分支源碼內(nèi)容。其他分支源碼需本地切換到其他分支方可顯示。

解決辦法git checkout -b readmmio origin/readmmio,創(chuàng)建并切換與遠(yuǎn)程分支對(duì)應(yīng)的本地分支,之后便可以看到本地文件夾顯示遠(yuǎn)程倉(cāng)分支源碼。

七、參考資料

1、https://blog.csdn.net/u011086209/article/details/116593218

2、https://blog.csdn.net/u010312474/article/details/107915694

3、https://git-scm.com/docs/git-init/zh_HANS-CN

4、https://www.bookstack.cn/read/git-tutorial/docs-commands-git-commit.md

5、https://www.cnblogs.com/runnerjack/p/9342362.html文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-695614.html

到了這里,關(guān)于Git&Gerrit使用筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Gerrit 使用操作手冊(cè)

    Gerrit 使用操作手冊(cè)

    一、Gerrit簡(jiǎn)介 Gerrit 是一種免費(fèi)、開(kāi)源的代碼審查工具,使用網(wǎng)頁(yè)交互頁(yè)面。這個(gè)軟件的名稱來(lái)自于荷蘭設(shè)計(jì)師師赫里特·里特費(fèi)爾德(Gerrit Rietveld),作者為Google公司的Shawn Pearce。它使用Git作為底層版本控制系統(tǒng),相比于其他的代碼管理工具,Gerrit明顯的特色是代碼審核。利

    2024年02月02日
    瀏覽(35)
  • gitlab/gerrit

    gitlab/gerrit

    首先聲明:本文在最后gitlab和gerrit關(guān)聯(lián)部分配置有問(wèn)題,導(dǎo)致后來(lái)代碼提交不了,所以本文僅作為了解配置過(guò)程使用,不可作為搭建模板 安裝配置參考 CHAPTER 3 Jenkins SVN GItlab 賬號(hào):root 密碼:Newm123@ 這里由于是docker啟動(dòng)gitlab,所以有些配置需要在容器中修改 然后配置gitlab免密

    2024年02月12日
    瀏覽(18)
  • gerrit 遇到的問(wèn)題匯總

    gerrit 遇到的問(wèn)題匯總

    更新遠(yuǎn)程代碼 git pull --rebase 回退到指定版本 get reset --hard commitid 修改之前的提交 git commit --amend 本地提交了兩個(gè)記錄到遠(yuǎn)程,遠(yuǎn)程還沒(méi)有合并,本地使用 git reset --soft HEAD~1 回退到了上一個(gè)提交,現(xiàn)在需要將本地的提交和遠(yuǎn)程的提交一致 解決方案 1、使用 git reflog 命令查看歷史

    2024年02月12日
    瀏覽(18)
  • gerrit用戶指導(dǎo)

    v3.6.2 https://gerrit-documentation.storage.googleapis.com/Documentation/3.6.2/intro-user.html 關(guān)于Gerrit Gerrit用于訪問(wèn)控制被托管的Git倉(cāng)庫(kù)以及為review代碼提供網(wǎng)頁(yè)前端。代碼review是Gerrit的核心功能,但這個(gè)功能仍然是可選的,可以不使用該功能。 Gerrit使用Git協(xié)議,意味著使用Gerrit不需要安裝Ge

    2024年02月15日
    瀏覽(13)
  • Gerrit 事件監(jiān)聽(tīng)實(shí)現(xiàn)

    Gerrit 事件監(jiān)聽(tīng)實(shí)現(xiàn)

    Centos 7.9 Gerrit 2.15 docker-compose.yml 啟動(dòng)docker 利用 gerrit stream-events 實(shí)現(xiàn)對(duì)Gerrit所有事件的監(jiān)聽(tīng) 生成密鑰 配置SSH 配置All-Projects的Stream Events 代碼部分 在Gerrit操作patch,代碼會(huì)打印相應(yīng)的事件 以Gerrit 2.15為例 使用webhook插件實(shí)現(xiàn)Gerrit主動(dòng)向自己的web服務(wù)發(fā)送請(qǐng)求 下載打包webhooks插件

    2024年02月08日
    瀏覽(22)
  • Gerrit常見(jiàn)命令及最佳實(shí)踐,學(xué)習(xí)前端開(kāi)發(fā)經(jīng)驗(yàn)

    Gerrit常見(jiàn)命令及最佳實(shí)踐,學(xué)習(xí)前端開(kāi)發(fā)經(jīng)驗(yàn)

    git clone ssh://tusi@xx.xx.cn:29428/project-name 如果使用了 Git 代理,請(qǐng)將 xx.xx.cn:29428 換成代理后的 ip:port git clone ssh://tusi@ip:port/project-name 創(chuàng)建develop分支 ============================================================================== 一般我們不會(huì)將代碼直接提交到 master 分支,而是會(huì)選擇在 develop 分支進(jìn)

    2024年04月28日
    瀏覽(23)
  • 搭建gerrit服務(wù)器+LDAP認(rèn)證+集成gitewb詳細(xì)流程

    搭建gerrit服務(wù)器+LDAP認(rèn)證+集成gitewb詳細(xì)流程

    Gerrit,一種免費(fèi)、開(kāi)放源代碼的代碼審查軟件,使用網(wǎng)頁(yè)界面。利用網(wǎng)頁(yè)瀏覽器,同一個(gè)團(tuán)隊(duì)的軟件程序員,可以相互審閱彼此修改后的程序代碼,決定是否能夠提交,退回或者繼續(xù)修改。它使用Git作為底層版本控制系統(tǒng)。 本文介紹如何搭建gerrit服務(wù)器,以及搭配LDAP認(rèn)證的

    2024年02月02日
    瀏覽(21)
  • ubuntu-2204 gerrit ssh 報(bào)錯(cuò)Permission denied (publickey).分析及解決

    ubuntu-2204 gerrit ssh 報(bào)錯(cuò)Permission denied (publickey).分析及解決 使用 repo init/sync 下載代碼時(shí)遇到報(bào)錯(cuò): Permission denied (publickey). 以下 user 及 10.100.1.115 為化名 $ ssh -p 29418 user@10.100.1.115 查看詳細(xì)信息 $ ssh -vv -p 29418 user@10.100.1.115 通過(guò)以上詳細(xì)信息可以看到以下幾個(gè)關(guān)鍵點(diǎn) OpenSSH版本為

    2024年02月09日
    瀏覽(27)
  • Ubuntu系統(tǒng)Git的安裝配置及使用筆記(更新中)

    Ubuntu系統(tǒng)Git的安裝配置及使用筆記(更新中)

    (1)、下載git 打開(kāi)終端命令窗口,輸入: sudo apt-get install git 提示:sudo命令是用來(lái)以其他身份來(lái)執(zhí)行命令,預(yù)設(shè)的身份為root,使用sudo時(shí)必須先輸入密碼 (2)、可以使用命令 git --version 查看git的版本號(hào) (3)、設(shè)置用戶名和郵箱 使用命令 git config --global user.name\\\"名稱\\\" 設(shè)置用戶名 使用命

    2024年01月20日
    瀏覽(21)
  • 【詳細(xì)教程】關(guān)于如何使用Git&GitHub的基本操作匯總&GitHub的密鑰配置 ->(個(gè)人學(xué)習(xí)記錄筆記)

    【詳細(xì)教程】關(guān)于如何使用Git&GitHub的基本操作匯總&GitHub的密鑰配置 ->(個(gè)人學(xué)習(xí)記錄筆記)

    點(diǎn)擊 官網(wǎng)鏈接 后,進(jìn)入Git官網(wǎng),下載安裝包 然后根據(jù)系統(tǒng)類型進(jìn)行下載,一般為windows 一般選擇64位的安裝器版本 下載好后開(kāi)始安裝 點(diǎn)擊Next 默認(rèn)即可,Next 默認(rèn)即可,Next Next Next Next Next Next Next Next Next Next install即可 我們?cè)谧烂骐S便創(chuàng)建一個(gè)文件夾例如code 進(jìn)入code文件夾 鼠

    2024年02月06日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包