AS中通過GUI執行Git命令以及在Gerrit環境下的操作

1.前言

記得在我剛入行的時候,Git便成為了我入門路上的攔路虎,各種命令讓我眼花繚亂,好不容易記住了,過幾天又忘了,如此反復,讓我覺得不太友好。于是就想有沒有方法可以替代在終端里敲Git命令呢,功夫不負有心人,經過一段時間的摸索,發現原來在AS里早已有了Git操作的圖形界面,簡單的Git命令都可以用鼠標直接完成,方便不少。

這里插播一段提醒:Git的學習是程序員必經的一道坎,本文只是為了給那些和我一樣不愛敲Git命令的同學提供一種新的姿勢,切不可因此而忽視Git的學習。

2.在AS中常用的Git操作

首先右鍵點擊工程根目錄

  • 查看代碼提交記錄


    查看代碼提交記錄.png
  • 恢復修改過的代碼


    image.png
  • pull遠端代碼 和 向遠端push代碼


    pull遠端代碼 和 向遠端push代碼.png
  • 切換分支
    在AS右下角


    選擇分支.png

    切換分支.png
  • 查看代碼作者
    這是我非常喜歡的一個功能,不管我看到優雅的代碼,還是糟糕的代碼,我都會查看一下作者,特別是剛到一個新的公司,試著通過代碼去了解你的同事,是一種很有趣的方式。


    查看代碼作者.png

這便是我在工作中最常用的幾個Git操作,以后如果想到別的,會繼續補充...

3.在Gerrit環境下的操作

之前的公司基本都是采用 Git + Bitbucket 的代碼管理方式,目前換了一家新公司(不要問我為什么總換公司,我做Android又不是為了錢,是因為我愛Android 手動滑稽 ),新公司采用的是 Git + Gerrit 的方式進行代碼管理。一開始我并不知道什么是 Gerrit,后來查了一下,發現和 Bitbucket 是差不多的,主要功能還是用來做Code Review 和代碼托管。
但是在用上了Gerrit 之后,發現我的圖形界面push大法居然不好用了,每次push都失敗,于是只能在終端敲Git命令,并且查看錯誤原因:

  • missing Change-Id
    這個錯誤是因為Gerrit 要求每次commit都得有一個Change-Id:

    Change-Id.png

    擁有Change-Id才是一個合法的commit。解決的辦法也很簡單,只需要敲一下報錯提示中的命令(下圖中箭頭所指的兩行),以后每次提交便會自動生成Change-Id。
    錯誤提示.png

    這個圖是網上找的,每個人的提示是有差別的,只要知道是這兩行就ok了,遇到了就照著自己錯誤提示上的這兩句敲。
    這里還有一點需要注意:第一行命令的作用是通過hook的方式,每次提交自動添加change-id,但是只針對之后的提交,你既然都報這個錯了,證明你現在至少有一個以上的commit缺少change-id,所以我們才需要第二行命令,給最后一次commit添上change-id,如果你當前只有一個commit缺少change-id,那么執行完就ok了,但是如果你之前還有好幾個commit缺少change-id,那么你需要將所有的commit都添加上change-id才能通過,可能需要用到reset命令,也可以通過第5部分的方式來操作,這里就不再贅述了,文末的參考鏈接里也有相應的操作方法。我們執行完第二行命令后,默認會打開Vim編輯器,我們只需要保存退出即可(wq),Vim的簡單操作也會附在后面。

  • Push的遠程分支不對
    當我解決完change-id的問題后,圖形界面操作push并沒有成功,但是通過敲命令的方式卻可以提交,push命令的格式為:$ git push <遠程主機名> <本地分支名>:<遠程分支名>
    在Gerrit 上push代碼到 feature 分支我們需要敲:

git push origin HEAD:refs/for/feature

大家發現區別了嗎?對,問題就在 refs/for/ 上,這是Gerrit 上的特殊規則,必須先提交到 refs/for/feature 分支上,通過code review后,才能合入feature分支,和Bitbucket 上的 pull request 差不多。
解決的辦法也很簡單,正常情況我們在圖形界面push,路徑是這樣的:


push1.png

我們只需要手動修改一下即可:


push2.png

這樣便可以通過圖形界面順利地push代碼了,瞬間輕松。

4.code review不通過時,如何修改已經push的代碼:

$ git checkout 有問題的commit
  修改代碼
$ git add -u   
$ git commit --amend 

git add -u:將文件的修改、文件的刪除,添加到暫存區
git add .:將文件的修改,文件的新建,添加到暫存區
git add -A:將文件的修改,文件的刪除,文件的新建,添加到暫存區

然后再進行push即可。或者abandon當前的push,修改完后再重新push也是可以的。

5.撤銷git commit的內容

  1. git log
    找到之前提交的 commit 的 id
  2. git reset id
    完成Commit命令的撤銷,但是不對代碼修改進行撤銷,可以直接通過git commit 重新提交對本地代碼的修改

以上操作也可以用圖形界面來代替,在提交歷史中,選擇Log,然后將代碼重置到你想要的commit上:


reset.png

這樣既撤銷了commit,代碼也會保留。

6.簡單的Vim操作

vim一共有4個模式:

  • 正常模式
    啟動vim后默認處于正常模式。不論位于什么模式,按下<Esc>鍵(有時需要按兩下)都會進入正常模式。

  • 插入模式
    在正常模式中按下i, I, a, A等鍵,會進入插入模式。在插入模式中,擊鍵時會寫入相應的字符。

  • 命令模式
    在正常模式中,按下:(英文冒號)鍵,會進入命令模式。在命令模式中可以執行一些輸入并執行一些vim或插件提供的指令,就像在shell里一樣。這些指令包括設置環境、文件操作、調用某個功能等等。
    常用的命令有:q(退出)、q!(強制退出)、w(保存)、wq(保存并退出)。

  • 可視模式
    在正常模式中按下v, V, <Ctrl>+v,可以進入可視模式。可視模式中的操作有點像拿鼠標進行操作,選擇文本的時候有一種鼠標選擇的即視感,有時候會很方便。

7.參考資料

https://blog.csdn.net/liuxu0703/article/details/54343096
http://www.lxweimin.com/p/b77fd16894b6

8.結語

終于重新開始寫博客了,年后換了工作,需要去熟悉的東西太多,所以停更了很久。稍微總結一下這兩年吧,畢業兩年了,工作換來換去(有公司倒閉的原因,也有對于自身發展的考慮),雖然工資以一個喜人的趨勢在上漲,但是給人的印象還是太不穩定了。這一次公司夠大,收入也令人滿意,周圍也有不少值得我學習的同事,所以接下來打算讓自己穩定下來,多多沉淀,不要再浮于表面了。
寫完這篇差不多也就放端午了,也祝大家端午快樂!工作生活兩不誤~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,327評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,996評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,316評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,406評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,128評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,524評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,576評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,759評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,310評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,065評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,249評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,821評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,479評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,909評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,140評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,984評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,228評論 2 375

推薦閱讀更多精彩內容