日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GIT 技巧

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GIT 技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

1、git撤銷本地修改

git reset --hard origin/master git pull

2、git回退到前n個版本

如下為向前回退3個版本,

git reset –hard HEAD~3

3、git多用戶提交沖突一

場景:用戶UserA修改了文件File1,用戶UserB也修改了文件File1并成功merge到了服務器上,而UserA和UserB改動了同一個代碼塊,當UserA拉取代碼時git無法merge此改動,就會出現如下錯誤提示,
error: Your local changes to the following files would be overwritten by merge: cn/trinea/appsearch/MainActivity.java
Please, commit your changes or stash them before you can merge.
這時
(1) 如果希望保存本地改動并拉下最新服務器代碼,手動merge,使用命令如下:
git stash git pull git stash pop git diff -w cn/trinea/appsearch/MainActivity.java 其中git stash表示備份當前工作區內容到git棧中,并使當前工作區內容與上次提交時一致,然后git pull拉取最新代碼,git stash pop表示從Git棧中讀取最近一次保存的內容,恢復工作區的相關內容,最后git diff表示手動merge你之前沖突的文件
(2) 如果希望服務器上版本完全覆蓋本地修改,使用如下命令回退并更新:
git reset --hard git pull

4、git多用戶提交沖突二

場景:用戶UserA提交了change A,沒有merge,之后用戶UserB提交了change B,merge成功。當merge change A時出錯,會提示,
The change could not be merged due to a path conflict.
Please rebase the change locally and upload the rebased commit for review.
?
大多數人的解決方式都是拷貝改動代碼,并重拉最新代碼Beyond Compare,重新提交。其實幾條命令就可以搞定,gerrit上先abandon原來的提交,后執行如下命令:

git reset --hard HEAD~2 git pull git fetch ssh://xxxx refs/changes/46/28146/1 && git cherry-pick FETCH_HEAD git push gerrit:xxxxxx HEAD:refs/for/xxxxxx 其中git reset –hard HEAD~2表示本地代碼后退兩級,如果有問題可以多后退幾次
git pull表示拉最新代碼
git fetch 表示獲取之前沒merge成功的改動到本地,后面跟的具體地址為gerrit上該change review頁面選擇cherry-pick、ssh后的地址,如下圖紅線標識
git fetch
git push 跟平時push一樣
?

5、git命令簡化

(1) 簡化git push命令
通常git push命令為git push gerrit:aaa HEAD:refs/for/bbb,其實可簡化為git push。
編輯git庫下的.git/config文件,在[remote "remoteName"]下添加兩行


pushurl=gerrit:aaa.git
push=HEAD:refs/for/bbb
以后提交只需要用git push即可。
?
(2) 簡化git add *;git commit -a;git push命令,一步完成添加、commit、push
第(1)步配好后,你還可以將命令git add *;git commit -a;git push添加別名到系統path中,如下操作:
vim ~/.bash_profile,文件最后添加


# add by trinea.cn for git simplify
alias gpush='git add *;git commit -a;git push'
source ~/.bash_profile
這樣以后只需要gpush即可完成添加、commit、push,當然你也可以取其他的別名如gp、gitpush、gitp。

轉載于:https://my.oschina.net/liucao/blog/488607

總結

以上是生活随笔為你收集整理的GIT 技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。