以下是我在開發過程中,遇到過的某些實際的git應用場景以及解決方案。
正常commit流程
//檢視當前狀態
git status
//將修改新增到暫存區
git add ***
//檢視暫存檔案狀態
git status
//提交到本地倉庫
git commit
//push到伺服器上
git push ***
//同事審核**
review
//**審核沒問題,入庫
merge
將本地修改(my code)push到gerrit上後,經過同事review之後,發現某些地方還需要修改
(建議:持續積累**經驗、提公升**質量)
在本地修改之後
//檢視當前狀態
git status
//將修改新增到暫存區
git add ***
//檢視暫存檔案狀態
git status
if (需要修改commit資訊) else if (不需要修改commit資訊)
//push到伺服器上,之後會發現gerrit上的my code會多乙個patch
git push ***
//同事審核**
review
//**審核沒問題,入庫
merge
在本地編輯了**(my code),正準備提交才想起來,同事剛入庫的**(his code)還沒有同步到我的本地。
(建議:多人合作編碼時,注意同步狀態)
if (my code和his code沒有衝突) else if (my code和his code有衝突) else if (還沒有commit)
}
將本地修改(my code)push到gerrit上後,gerrit提示my code與同事先push到gerrit上的**(his code)有衝突
(建議:多人合作編碼時,注意同步狀態)
等his code入庫之後
//將伺服器git倉庫同步到本地。注意一定要在reset和push之後同步**,要不然會在沒有任何提示的情況下,沖掉my code
repo sync .
//該條命令可以在gerrit上覆制過來
git cherry-pick ***
git會提示**有衝突
解完衝突之後執行 git cherry-pick --continue
發現my code作為最新的提交存到了本地倉庫
//給gerrit上的my code打補丁
git push ***
將本地修改(my code1)push到gerrit上後,還沒等my code1入庫,又push了一筆**(my code2)到gerrit上,review**時才發現my code1還需要修改。
//將工作空間和本地倉庫重置到my code1對應的一筆提交(在android studio的git視覺化介面上操作更直觀)
git reset --hard head^
修改本地**
//檢視當前狀態
git status
//將修改新增到暫存區
git add ***
//檢視暫存檔案狀態
git status
if (需要修改commit資訊) else if (不需要修改commit資訊)
//push到伺服器上,之後會發現gerrit上的my code1會多乙個patch
git push ***
繼續review,直到my code1沒有任何問題
cherry-pick my code2到本地
if (本地沒有衝突) else if (本地有衝突)
訊息推送應用場景與解決方案
作為開發者,不要有需求就接,應該多思考 多理解使用者 功能的使用場景,有助於我們更好地去選擇合適的開發方式 3.1 作業系統有自身的訊息推送功能 系統級別 3.2 推送的本質與原理 主動獲取方式 pull 客戶端隔固定時間主動向伺服器獲取資訊,看是否有更新的資訊 若有更新資訊,則傳送到客戶端 被動接...
Ember的一些高階應用場景解決方案
1.乙個route中包含多個請求.官方給出的路由的例子,都是乙個路由的model方法中乙個請求,有很多情況,我們需要有多個請求,那怎麼辦呢?很簡單,model方法的規則是返回乙個promise物件或者直接的物件或陣列。那麼我們可以利用ember.rsvp.all,或者jquery裡的 when,他們...
有趣的業務場景及解決方案
問題一 由於sap中技術搭建bom時維護金工板材數量使用的是板材淨重,與實際生產過程中領用量存在差異,導致產品報工反衝板材時,差異留存在庫存中,需要手工核算調整。解決方案 新方案通過在系統中錄入鈑金程式單,獲取板材實際用料,並關聯程式單對應的生產訂單,按照生產訂單中,板材淨重換算分配比例,將板材實際...