git 平常使用,比較經常使用的東西

記錄工做中,最經常使用的一些 git 命令跟操做git

建立分支跟合併分支

從本地建立分支

$ git checkout -b feature/dev

推送分支到遠程shell

$ git push origin feature/dev

查看分支狀況,遠程本地都已經有分支了code

$ git branch -a

* feature/dev
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature/dev
  remotes/origin/master

從遠程建立分支

$ git checkout -b feature/dev origin/feature/dev

查看分支狀況,遠程本地都有分支了開發

$ git branch -a

* feature/dev
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature/dev
  remotes/origin/master

合併分支

  • feature/dev 合併到 master分支
$ git merge feature/dev
  • 若是有衝突,則會提示提示以下,表示咱們須要解決衝突,才能繼續合併
$ git merge feature/dev
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
  • 而後,咱們編輯文件,進行衝突的解決,衝突內容大概以下:
<<<<<<< HEAD
master
=======
Test merge
>>>>>>> feature/dev
  • <<<<<<< HEAD>>>>>>> feature/dev 部分,表示衝突的內容
  • <<<<<<< HEAD======= 部分,表示是HEAD節點,也就是master的內容
  • =======>>>>>>> feature/dev 部分,表示是feature/dev分支的內容
  • 咱們手動解決衝突後,須要從新提交
$ git add .
$ git commit -m"解決衝突"
$ git push

刪除分支

刪除本地分支

$ git branch -d feature/dev // 刪除本地分支
$ git branch -D feature/dev // 強制刪除本地分支

刪除遠程分支

$ git push origin :feature/dev

分支更名

$ git branch -M [old branch name] [new branch name]

版本管理

版本回退

  • 版本回退,有2種方式,咱們只介紹下經常使用的
    • 經過commithash值來進行回退
    • 經過 HEAD~2,來回退兩個commit
$ git reset --hard [commit hash] // 回退到某個commit
$ git reset --hard HEAD~2 // 回退2個commit

假如,咱們在只是commit了,並無push到遠程,並且咱們還回退了版本,咱們能夠經過git reflog查看git執行的命令,來獲取commithash值又返回到最新的commit節點rem

$ git reflog
$ git reset --hard [commit hash]

提交信息合併

咱們本地提交的信息有太多無用的信息,咱們須要合併一下提交信息源碼

$ git reset --soft HEAD~2

上面命令,只會把commit信息回退,並不會將源碼回退,這時候咱們能夠從新提交commit信息hash

$ git commit -am"new commit message"

咱們就能夠看到,前面的2個commit信息不見了,只有新的提交信息it

改動文件,臨時提交

工做中,可能會碰見,正在開發某個需求,文件有改動,這時候,忽然來了某個緊急的bug,須要去解決,這時候,咱們還沒改動完,想保留現場,而後切分支改完bug,在切回來,這時候就能夠用到git stash命令了ast

先執行如下命令,將變化臨時保存起來,提交到git堆棧,而且切換分支,更改代碼class

$ git stash

修復完東西后,切回分支,在執行如下命令,將改動還原回來

$ git stash pop

文件管理

文件移除 git 管理

$ git rm --cached [file]
$ git commit -m""
$ git push

而後,將文件名稱或者後綴寫入.gitignore就不會被git管理了

文件夾移除 git 管理

$ git rm -r --cached [folder]
$ git commit -m""
$ git push

而後,將文件名稱或者後綴寫入.gitignore就不會被git管理了

相關文章
相關標籤/搜索