gerrit管理下的git代碼提交小技巧



1、提交代碼
git checkout targetbranch 切換至目標分支
git pull origin targetbranch 拉取目標分支最新內容
git add 修改文件
git commit -m “修改內容:xxxxx”
git push origin HEAD:refs/for/targetbranch

2、修改代碼后發現所在分支不是目標分支怎么辦?
修改代碼的分支是A,而需要提交的分支是B, 有兩種辦法:
方法一:
1> 新建一分支C,保留現在的分支修改內容;
2>git branch C
3> 切換至目標分支B,拉取C分支的內容至分支B;
git checkout B
git fetch origin C
4> 檢查修改文件變化和內容是否原來修改的一致
git status
git diff 文件
5> 按照提交代碼環節操作即可;
方法二:
1> 將A分支上修改的內容放到回收站工作樹,這個相當於是一個棧,可以進行壓入彈出,比棧更高級的是可以根據索引進行彈出;
git stash
2> 切換至B分支
git checkout B
3> 從回收站恢復修改數據至B分支
git stash
git stash list 查看回收站中存在的文件;
git stash show 查看回收站中相對本地文件的變化,與git diff類似;
git stash pop 恢復回收站最頂層數據至本地;
4> 按照提交代碼環節操作即可

3、修改提交后發現提交的內容存在問題怎么辦?
如果提交后的代碼還沒有merge到對應分支,可按照如下方法:
1> 切換至原來修改提交所在分支
git checkout targetbranch
2> 繼續修改內容
3> git add 修改文件
4> git commit --amend
5> git push origin HEAD:refs/for/targetbranch
如果提交后的代碼已經merge,按照正常修改提交代碼流程即可;

4、A B C三個人同一時間段內提交代碼,此時B提交的代碼已經merge, 而C發現他提交的代碼與A有沖突conflict,怎么辦?
1> 切換至原來修改提交所在分支,切換至自己修改前的一次提交commit-id
git checkout targetbranch
git log | less
git reset commit-id
2> 拉取合並代碼更新
git pull origin HEAD:refs/for/targetbranch
3> git add 修改文件解決沖突,主要是文件中包含HEAD的地方,其中HEAD XXX ====中的XXX是本地舊內容;
4> git commit -m “修改內容:xxx”
5> git push origin HEAD:refs/for/targetbranch

5、拉取代碼失敗
1> 確認拉取方式是否為帶hook的ssh
git clone ssh://chenxiaoyuan@10.75.9.60:29418/CGDL-F25/src/mate-related && scp -p -P 29418 chenxiaoyuan@10.75.9.60:hooks/commit-msg mate-related/.git/hooks/
2> 確認自己的ssh公鑰是否重新生成過,或者沒有添加至gerrit帳戶的認證信息中。

6、查看某個文件的修改歷史
git log 相對路徑

7、查看某次提交的修改內容
git show commit-id


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM