git 某些應用場景及解決方案(後悔藥)

2021-10-09 06:02:59 字數 1957 閱讀 8164

以下是我在開發過程中,遇到過的某些實際的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時維護金工板材數量使用的是板材淨重,與實際生產過程中領用量存在差異,導致產品報工反衝板材時,差異留存在庫存中,需要手工核算調整。解決方案 新方案通過在系統中錄入鈑金程式單,獲取板材實際用料,並關聯程式單對應的生產訂單,按照生產訂單中,板材淨重換算分配比例,將板材實際...