Android Studio與Git的常規姿式介紹

首先下載git,安裝(路徑爲英文),地址自找,o(╯□╰)o。android

配置git基本環境


1) 打開git命令終端,或者在隨便一個文件夾下,鼠標右鍵選擇git bash here打開終端。git

git config --global user.name "姓名"
git config --global user.email "你的郵箱"
ssh-keygen -t rsa -C "上面填的郵箱"
接下來按3個回車,密碼爲空
而後會出現一串英文,而且有個字符圖形。
複製代碼

2) 打開C:\Users\Administrator 找到到一個.ssh文件夾,裏面會多出id_rsa和id_rsa.pub文件。下面打開id_rsa.pub文=文件,而後拷貝里面內容。web

3) 打開公司分配的git帳號,登錄pc站點,找到本身的我的資料頁面,在key一欄打開,添加剛纔拷貝的祕鑰。若是是gitlab,Profile settings裏有個ssh-key菜單,看下圖: 緩存

image.png

開始搭建項目環境

  1. 打開公司的gitlab之類的項目地址,fork下項目。 此時在本身的項目管理頁面能夠看到一個帶本身名字標識的公司項目,這時說明你已經拷貝項目到本身的遠程倉庫。好比gitlab,fork後在首頁右側能夠看到xx/某某項目的目錄結構。
  2. 打開本身的fork項目,找到ssh地址(不是https的地址,ssh更快更方便) 拷貝地址,而後去你之後想存放項目的電腦目錄文件夾裏,鼠標右鍵git bash here。 執行指令:git init,建立從此常使用的本地git倉庫
  3. git clone 你剛纔拷貝的項目地址,下載成功後,在倉庫文件夾裏能夠看到項目文件了。
  4. 一樣,打開公司項目地址,找到ssh地址,執行:git remote add mainline 公司遠程主庫的ssh地址。 執行git remote -v,你會看到4行提示,其中mainline、origin各兩個。mianline是你之後遠程pull的地址,origin是你之後push的地址。 即每次push到本身的fork庫(遠程倉庫),而後提交new request merge請求,最後合併到公司的遠程地址。 而每次須要更新同步同事的代碼,須要git pull mainline xx分支名,以此更新對應分支的代碼。
    這裏寫圖片描述
  5. 在android studio裏面vcs(右上角菜單欄)打開vcs enable,選擇啓用git。
  6. 測試pull,執行git pull mainline master,它會提示有更新或者已經最新,此時說明配置ok。測試push到本身遠程倉庫,git push origin master,同理。
    這裏寫圖片描述

這裏寫圖片描述

  1. 若是須要創建本地分支而且以遠程倉庫的分支進行創建,執行下面指令: git checkout --track -b 你本地準備起的分支名 origin/xx分支名 若是成功則會在命令中斷右側master會變成對應分支名。(csdn自動把兩個-合併了,注意:track前面有2個"-")

這裏寫圖片描述

  1. 查看本地遠程分支,git branch -r ,git branchbash

  2. 若是git pull mianline xx分支名提示代碼有衝突,按下面操做(有不少方式,比較麻煩的是回退衝突版本,前提先備份。)ssh

  3. 則先git stash ,把當前本地代碼存到緩存區。gitlab

  4. 繼續執行git pull mianline xx分支名測試

  5. 取出緩存區的代碼,git stash pop,取出緩存區最新的存入代碼,也能夠指定取出哪一次存放的緩存。此時可能有衝突,會提示哪些文件衝突,而後在android studio裏面能夠看到本來git倉庫裏的項目文件報紅色,解決<<<<<<=====>>>>>>標記的內容,"===="前面是你的代碼,後面是pull下來的代碼,因爲衝突不能自動處理,因此須要你手動修改,有些代碼須要人爲按照業務邏輯處理,這個就是大家團隊之間商量了。fetch

特殊配置說明:上述操做比較麻煩,目前有更簡單的方式處理主工程所在的遠程庫被protected的問題。主要是在建立本地分支時作特殊處理。spa

  1. 假設當前主庫(mainline)的開發分支爲develop,本地須要在創建develop分支時,track跟蹤關聯對應的主庫的分支。即建立的代碼爲git checkout -b develop mainline/develop。(或者改變原有的跟蹤分支,使用git branch --set-upstream-to origin/debug debug,debug是你本地分支,origin/debug是遠程分支;此後你能夠一樣去as裏操做pull和push了。)
  2. 這樣你的本地該分支能夠在android studio裏用可視化操做了,點擊vcs直接pull代碼,這個時候拉取代碼有衝突就不須要上面那樣麻煩了,能夠利用AS的可視化處理合並衝突。push代碼時按照下圖把push的庫名改成origin(本身的遠程fork倉庫)。這樣push完代碼後,再去web站點去提交PR進行合併分支到主庫。
    這裏寫圖片描述
    這裏寫圖片描述

3.git branch -vv,就可以看到本地分支跟蹤的遠程分支。

若是上述操做遇到問題: 1.fatal: Cannot update paths and switch to branch 'develop' at the same time. Did you intend to checkout 'mainline/develop' which can not be resolved as commi t? 解決方案:沒法在遠程分支之上創建分支,試試git remote update git fetch 。 2.點擊AS裏的pull按鈕,拉取代碼提示could not read from remote repository 在git終端能夠正常pull或者push,AS裏push或者pull卻會報上述錯誤 使用下面操做: setting –> Version Control –>Git ,In the SSH executable 裏選擇Native

差別較大的分支合併或找回誤回退的代碼

1.git revert或者不當心覆蓋了剛纔新改新增長的未提交的文件

這裏寫圖片描述
能夠在1處鼠標右鍵,找到local history那一行,點擊showhistory,能夠看到整個項目最近的操做記錄(紅色2,3處能夠只看部分module的變化,根據須要選擇)。選擇合適的時間點恢復須要的代碼。點擊左上角的返回鍵能夠快速恢復到你選擇的時間點,恢復對應修改的文件。
這裏寫圖片描述
這裏寫圖片描述
鼠標右鍵show diff
這裏寫圖片描述
而後能夠直接對比左側以前的代碼和右側如今的代碼了。
這裏寫圖片描述

2.遷移分支差別比較大的部分代碼塊到當前分支

使用右下角AS自帶的分支管理,選擇compare,比較2個分支,而後看log或者選擇下圖中箭頭所指的diff,

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述
上圖打開後,後續操做能夠雙擊想看差別的文件,或者鼠標右鍵對應的文件,而後按照界面能夠繼續恢復或者其它revert動做。

附上神圖:

這裏寫圖片描述
相關文章
相關標籤/搜索