git經常使用命令

公司裏面用的版本控制系統是git,以前一直使用svn,用了一段時間git,如今總結了一些在工做當中常常用到的一些比較重要的命令git

  • 撤銷添加到暫存區的文件
    • git reset head finename 撤銷單個文件
    • git reset head 撤銷全部已經添加到暫存區的文件
  • 使用版本庫中的最新文件,放棄本地修改
    • git checkout filename 放棄單個文件的修改
    • git checkout *放棄全部文件的修改
  • 比較工做區和暫存區文件的區別
    • 默認狀況下git diff 比較的是工做區和暫存區文件之間的區別
    • 加上參數比較的就是工做區和版本區或者暫存區和版本區之間的區別
      • git diff --cached 暫存區和版本區之間的區別
      • git diff master 工做區和版本區之間的區別
  • 使用版本區的文件覆蓋工做區和暫存區的文件
    • git reset --hard head 使用版本區中的文件覆蓋工做區和暫存區的文件
    • git reset --hard head^ ^表示回退到當前版本的上一個版本,也就是commit_id
    • git reset --hard commit_id 一樣咱們也能夠直接回退到某一個固定的版本id狀態
    注意:加hard和不加hard之間的區別,加hard表示使用版本庫中的文件將暫存區和工做區的全部文件都覆蓋掉,使用--hard參數的時候,只能將所有文件都覆蓋掉,不能進行單獨文件的覆蓋,若是隻但願覆蓋某一個文件,那麼只能使用checkout操做,由於有時候會遇到將別人文件覆蓋的狀況,或者合併分支合併錯誤,這個時候就須要回滾操做,reset --hard head 就比較重要了
    通常狀況下,一旦進行了回滾操做,證實是以前的代碼寫亂了,纔會進行,可是若是回滾以後,發現已經修改了的代碼改的是對的,又想前進上去怎麼辦。
    git reflog 用來查看全部的提交id,包括以前被回退的id
    接下來容易辦了,一樣適用強制修改head的指向來進行前進操做
小結
如今總結一下:
    HEAD指向的版本就是當前版本,所以,Git容許咱們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log能夠查看提交歷史,以便肯定要回退到哪一個版本。
要重返將來,用git reflog查看命令歷史,以便肯定要回到將來的哪一個版本。
相關文章
相關標籤/搜索