天天看點

git 大法,玩轉版本管理

最近有小夥伴問我 git 應該怎麼學,我覺得 git 就是多用就會了,把常用的指令先看兩邊,然後再在實際過程中運用,忘了再去查一查,用多了就記住了,當然這隻是代碼管理,要達到真正的版本管理,還需要一些規範。比如送出代碼的規範,各個版本之間怎麼管理,分支怎麼管理等等,我盡量在下一篇文章中分享。

今天文章就先把一些常用的指令進行介紹,看看自己有哪些還沒用過的,記下來,說不定遇到這種事兒就會用了。

工程下載下傳、分支的增删查改

工程下載下傳:

  • clone 遠端工程:git clone https://XXXX.git
  • fetch 遠端分支到本地某分支:git fetch origin

    :

分支的增删查改

  • 檢視分支:git branch
  • 檢視遠端所有分支:git branch -r
  • 檢視本地和遠端所有分支:git branch -a
  • 建立分支:git branch
  • 切換分支:git checkout
  • 建立并切換分支:git checkout -b
  • 合并某分支到目前分支:git merge
  • 把分支推送到遠端:git push origin
  • 删除本地分支:git branch (-d | -D)
  • 删除遠端分支:git push origin -d
  • 分支重命名:git branch (-m | -M)

檢視送出資訊日志

  • 檢視分支最近一次的修改清單:git status
  • 檢視分支的commit資訊(倒叙排列)
  • git log 檢視commit id, Author, Date, commit info
  • git shortlog 按送出者分類顯示送出資訊
  • git log --oneline 隻輸出commit id 和 commit info
  • git log --stat 檢視增删查改了哪些檔案

版本回退

  • 回退到上一版本:git reset --hard HEAD^
  • 回退到上上版本:git reset --hard HEAD^^
  • 回退到上上版本:git reset --hard HEAD~2
  • 回退到某個版本:git reset --hard
  • 強制推送到遠端分支:git push -f

注意:

1、HEAD 指向的版本是目前版本,^ 表示上一個版本,~N 表示上N個版本,可簡寫 

2、git log 可以檢視

3、git reflog 可以檢視指令曆史,用來回到某個未來的版本

檔案的添加、送出、拉取、推送、比對、合并

  • 添加新增檔案:git add README.md
  • 添加所有新增檔案:git add .
  • 暫存變更檔案:git stash [save "暫存備注"]
  • 恢複暫存檔案:git stash pop
  • 送出變更檔案:git commit -m "變更備注"
  • 拉取遠端代碼:git pull [origin

    ]

  • 推送到遠端:git push origin
  • 比對兩個分支:git diff
  • 比對兩個分支變更的檔案清單:git diff

    --stat

  • 比對本地和遠端分支:git diff

    origin/

  • 合并某個分支:git merge
  • 強制覆寫本地分支: 

    1、git fetch --all 

    2、git reset --hard origin/

    3、git pull

常用選項和其他指令

git 中部分選項解釋

  • -f --force:強制
  • -d --delete:删除
  • -D --delete --force
  • -m --move:移動或重命名
  • -M --move --force
  • -r --remote:遠端
  • -a --all:所有

其他指令

  • 清空工程:
$ git rm -rf .           

每隔X秒運作一次git pull:

for((i=1;i<=10000;i+=1)); do sleep X && git pull; done           

使用git rebase将一個feature分支變基到master分支

$ git checkout feature 
$ git rebase master           

配置相關

  • 檢視目前配置: git config --list
  • 修改 git 的 name 和 email :
git config --global user.name <name>
git config --global user.email <email>           

原文釋出時間為:2018-10-29

本文作者:桃翁  

本文來自雲栖社群合作夥伴“

前端桃園

”,了解相關資訊可以關注“

”。