最近學到的Git知識,大廠的Git機制仍是很方便的

本文首發於微信公衆號:程序員喬戈裏 轉載請註明:https://blog.csdn.net/WantFlyDaCheng/article/details/102538508前端

1、兩次的 git commit 到不是同一個遠程分支

undefined

  • 這裏因爲提交本身的代碼第一次提交到A分支,第二次提交B分支,而後報錯了,這裏報錯之後,會提示一個百度本身內部的連接,你點擊連接就能夠照着提示去修改,能夠說仍是省了很多事,不用本身去google百度去解決,開發效率也提升很多
  • 上面圖片中有6e8713f is CR parent commit 這行提示,劃重點,待會要用到。

解決過程

你當前的操做場景以下圖,因爲一次CR(評審)的多個commits不能push到不一樣的refs/for/[分支名](可能致使後續評審合入merge failed):git

undefined

評審是啥意思,這裏解釋一下。本地開發的流程首先是從本身遠程的分支A拉到本地,遠程分支是master分支的一個clone,本地完成開發後,須要提交到本身的遠程分支,提交之後必須由其它人評審代碼(code reviewe),其它同事評審的時候主要找出不合規範和邏輯的地方,你須要修改完成之後,才能合入到你的遠程分支A,而後再從你的遠程分支A合到master上,這樣就完成了代碼入庫。程序員

  • 本次合併我最終的目的是要合到B分支(第一次提交是A分支,第二次是B分支)
  • 若是你指望commit 1和commit 2均合入分支B:
  • 請回滾本地commit,從新合併爲同一筆commit push至分支 B (會生成一筆新的評審)

操做命令

$git reset --soft [CR parent commit] (對應CR parent commit見push報錯信息.也就是有6e8713f is CR parent commit)   
$git commit -m"commit message"   
$git push origin HEAD:refs/for/[branch B] 複製代碼

2、git 撤銷文件修改

何時用到

  • 若是有文件A沒有發生修改,可是再提交評審的時候仍是發現A出現了修改,你使用git diff 並無發現你的本地文件A和遠程分支A有什麼不一樣,須要撤銷修改
  • 不當心勿加了空行
  • 就是想撤銷已經提交的某個文件的修改

如何操做

undefined

1. 撤銷緩存區的修改面試

git reset HEAD filename複製代碼
  1. 撤銷工做區的修改
git checkout --filename複製代碼

3、git 衝突解決

undefined上圖是提交代碼時候,發生了衝突,依舊很貼心,百度這套代碼審查系統依舊給了提示,照着提示操做一波。算法

Step1. 在本地倉庫中, 更新併合並代碼

git fetch origin
git rebase origin/master複製代碼

Step2. 依據提示分別打開衝突的文件,逐一修改衝突代碼

  • undefined
  • undefined
  • 能夠看到有head和你的本次提交信息,head是遠程分支,git commit -m "commit提交信息" 這條命令中我填的是689任務,能夠看到每有一處信息不一致,在你產生衝突的文件都會提示出來。
  • 咱們須要作的就是解決衝突,對比遠程和你本地產生衝突的地方,保留下你須要的代碼,同時記得把head和689任務(commit提交信息)這些不是代碼中的內容刪除掉。
  • 或者不須要這樣一點點修改,你已經知道了你須要提交什麼樣的代碼,那麼直接將你肯定好沒問題的代碼複製到這份衝突文件中,而後進行git三連便可

Step3. 全部衝突都修改完畢後, 提交修改的代碼

git add -u
git rebase --continue複製代碼

Step4. 更新patch

git push origin HEAD:refs/for/master複製代碼

4、撤銷你的commit提交

如何撤銷commit提交,熟練的執行完如下兩條命令之後:數據庫

git add *
git commit -m "提示信息A"複製代碼

你發現本身的提示信息寫的不對,想git commit -m "提示信息B",可是因爲已經git commit 過了,會提示你沒有什麼須要git commit的,這個時候如何撤銷git commit呢?編程

git reset --soft HEAD^複製代碼

這樣上一次提交就被撤回了,而後繼續執行git commit -m "提示信息B" 便可。後端

若是是頭條用戶,能夠在個人頭條號 程序員喬戈裏 私信我 資源 獲取價值29998元的編程和考研資料
以爲文章不錯的歡迎關注個人WX公衆號:程序員喬戈裏
我是BAT大廠後臺開發工程師,專一分享技術乾貨/編程資源/求職面試/成長感悟等,關注送5000G編程資源和本身整理的一份幫助很多人拿下Offer的整理一份面試資料《技術面試必備基礎知識》,覆蓋了Java核心技術、JVM、Java併發、SSM、微服務、數據庫、數據結構、Leetcode 題解、、C++、Python、後端面試、操做系統、計算機網絡、系統設計等等。關注公衆號並回復 888 領取,免費下載CSDN資源。緩存

若是你對算法感謝趣,歡迎關注個人公衆號 圖解算法,使用Python/Java/前端/C++四種語言對Leetcode和劍指offer進行漫畫講解,幫助你快速搞懂算法!微信

圖解算法.jpg

相關文章
相關標籤/搜索