平常工做中,我的總結的 - Git - 經常使用操做方法 (七)

工做中,多人提交代碼總會遇到各類衝突,忐忑,怕合併錯誤,退不回

連接 :技術來源大佬感謝廖雪峯大佬前端

前提 我當前工做中,git rebase 衝突,二話不說先 git rebase --abort 保命……,當即取消當前rebase怕合錯大佬的代碼。太慌了……react

  • git add .
  • git commit -m "慌"
  • …… 此處省略好多,commit……
  • git log ---- 查看你commit版本控制的歷史記錄,顯示從最近到最遠的提交日誌,咱們能夠看到3次提交,最近的一次是append 巨慌,上一次是add 很慌,最先的一次是wrote 慌。。。
$ git log
    commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
    Author: -------
    Date:   Fri May 19 23:00:15 2019 +0800

        append "巨慌"

    commit e475afc93c209a690c39c13a46716e8fa000c366
    Author: -------
    Date:   Fri May 19 19:03:36 2019 +0800

        add "很慌"

    commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
    Author: -------
    Date:   Fri May 19 12:00:18 2019 +0800

        wrote "慌"
複製代碼
  • git log --pretty=oneline ----- 若是嫌輸出信息太多,能夠這樣,前面那個是commit id(版本號),巨有用,能夠用來回退和前進版本,每commit一次都會有個不一樣的ID
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append 巨慌
e475afc93c209a690c39c13a46716e8fa000c366 add 很慌
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote 慌
複製代碼

在Git中,用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,固然往上100個版本寫100個^比較容易數不過來,因此寫成HEAD~100, 版本也就是提交94adb...這類的idgit

  • git reset --hard HEAD^ ---- 把當前版本append 巨慌 回退到上一個版本 add 很慌
$ git reset --hard HEAD^
HEAD is now at e475afc add 很慌
複製代碼
  • git log --- 看如今版本庫的狀態, 最新的那個版本append "巨慌" 已經看不到了
$ git log
    commit e475afc93c209a690c39c13a46716e8fa000c366 (HEAD -> master)
    Author: -------
    Date:   Fri May 19 19:03:36 2019 +0800
        
        add "很慌"
        
    commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
    Author: -------
    Date:   Fri May 19 12:00:18 2019 +0800
        
        wrote "慌"
複製代碼
  • git reset --hard 1094a ---- 只要上面的命令行窗口尚未被關掉, 找到那個append "巨慌"commit id1094adb...,回到將來的某個版本,版本號不必寫全,前幾位就能夠了,Git會自動去找。固然也不能只寫前一兩位,由於Git可能會找到多個版本號,就沒法肯定是哪個了
$ git reset --hard 1094a
    HEAD is now at 83b0afe append "巨慌"
複製代碼

若是次日,想恢復到新版本怎麼辦,可是昨天的上面的命令行窗口已經關掉了,個人commit id不知道是多少,由於從之前的版本去到將來的版本必定要知道commit id,Git提供了一個命令 git reflog 用來記錄你的每一次命令app

  • git reflog ----- 好強,append 巨慌的commit id1094adb,看記錄得出,你又能夠回到將來了
e475afc HEAD@{1}: reset: moving to HEAD^
    1094adb (HEAD -> master) HEAD@{2}: commit: append 巨慌
    e475afc HEAD@{3}: commit: add 很慌
    eaadf4e HEAD@{4}: commit (initial): wrote 慌
複製代碼

忽然master分支出現新問題,本地master分支和版本庫裏的master分支的內容不一樣,但要以版本庫裏的master分支內容爲主,須要強制覆蓋本地代碼(與git遠程倉庫保持一致)

  • git checkout master ---- 先切換到master主分支

git強制覆蓋:學習

git fetch --all
git reset --hard origin/master
git pull
複製代碼

更新遠程分支列表

git remote update origin -p ----- 這條指令就能更新遠程最新的分支列表了
git branch -a ---- 能夠看到本地和遠程分支列表
複製代碼

總結

  • Git的版本指向當前版本的HEAD指針,你讓HEAD指向哪一個版本號,你就把當前版本定位在哪
  • git log--- 能夠看下你commit過的歷史記錄,你能夠回到之前的版本
  • git reflog ---- 能夠查看查看命令歷史,讓你能夠回到將來

結語

前端react QQ羣:788023830 ---- React/Redux - 地下老英雄

前端交流QQ羣:249620372 ---- FRONT-END-JS前端

(咱們的宗旨是,爲了加班,爲了禿頂……,仰望大佬),但願小夥伴們加羣一塊兒學習fetch

相關文章
相關標籤/搜索