Git的概念及常用命令

一、概念git reflog

二、常用命令

  1. 命令:git init ,將目錄變成Git可以管理的倉庫
  2. 命令:git add,將文件添加到Git倉庫,可以多次添加
  3. 命令:git commit -m<message>,將文件提交,只需一次提交
  4. 命令:git log,顯示最近到最遠的提交日誌(–pretty=onelint,將多行合併一行)
  5. 命令:git reset --hard HEAD^,回到上一個版本,在git中,HEAD表示當前版本,上一個版本就是HEAD^,上上個版本就是HEAD^^,如果是多個則使用HEAD~10(回到前10個版本)
  6. 命令:git reflog,記錄每次操作命令
  7. 命令:git reset --hard commit_id ,回到指定版本
  8. 命令:git diff HEAD -- <file>,查看文件工作區版本和庫中最新版本的區別

三、工作區和暫緩區關係
這裏寫圖片描述

第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;
第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

四、撤銷修改

  1. 場景1:當改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令:git checkout -- file
  2. 場景2:當不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令:git reset HEAD <file>,就回到場景1的情況,再安裝場景1處理
  3. 場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參版本回退方法(前提是沒有推送到遠程庫)

五、刪除文件

  1. git checkout -- test.txt 其實是用版本庫裏的版本替換工作區的版本,無論工作區的是修改還是刪除,都可以“一鍵還原”
  2. git rm用於刪除一個文件。如果一個文件已經被提交到版本庫,那麼永遠不用擔心誤刪,但要消息,只能恢復文件到最新的版本,會丟失最近一次提交後修改的內容

六、創建密鑰

  1. ssh-keygen -t rsa -C "[email protected]" 然後輸入文件名id_rsa,連續空格鍵,在git包下即可找到id_rsa.pub文件裏既是密鑰

七、推送到遠程服務

  1. 把本地master分支的最新修改推送至GitHub,命令: git push origin master
  2. 克隆遠程服務,例:git clone [email protected]:michaelliao/gitskills.git

八、創建與合併

  1. 分支創建:git checkout -b <name>,在git checkout命令上添加-b參數表示創建並切換,name分支名
  2. 查看所有分支,git branch,當前分支前會有“*”
  3. 合併分支,git merge <name>,合併指定分支到當前分支
  4. 刪除分支,git branch -d <name>
  5. 查看分支合併圖,git log --graph --pretty=online --abbrev-commit

九、分支管理策略

  1. Fast forward模式下,刪除分支後會丟掉分支信息。git merge --no-ff -m<message>:表示禁用該Fast forward模式

十、Bug分支

2.Git還提供了一個stash功能,可以把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作,git stash
2. git stash list 查看工作現場位置
3. 恢復工作現場方法,一種:git stash apply,恢復後,stash內容並不刪除,你需要用git stash drop 來刪除;另一種:git stash pop,恢復的同時把stash刪除

十一、新功能

  1. 在開發一個新的feature,最好新建一個分支;如果要丟棄一個沒有被合併過的分支,可以通過git branch -D <name> 強行刪除

十二、多人協作

當從遠程倉庫克隆時,實際上Git自動把本地的master分支和遠程的master分支對應起來,並且,遠程倉庫的默認名稱時origin。查看遠程庫信息,使用命令:git remote,或者git remote -v 顯示更詳細的信息
2. 推送分支git push origin master,如果推送其他分支,比如dev,git push origin dev
這裏寫圖片描述

十三、抓取分支

默認情況下,只能看到本地master分支,要在dev分支上開發,就必須遠程創建origin的dev分支到本地,命令:git checkout -b branch-name origin/branch-name例:git checkout -b dev origin/dev

  1. 本地新建的分支如果不推送到遠程,對其他人就是不可見的
  2. 從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull 抓取遠程的新提交,如果抓取失敗,則需要建立本地分支與遠程分支的鏈接git branch --set-upstream branch-name origin/branch-name
  3. rebase操作可以把本地未push的分叉提交歷史整理成直線,git rebase

十四、標籤

  1. 查看標籤信息,命令git show <tag-name>

這裏寫圖片描述

  1. 刪除本地標籤,命令:git tag -d <tag-name>,
  2. 如果要推送某個標籤到遠程,使用命令:git push origin <tag-name>,或者,一次性推送全部尚未推送到遠程的本地標籤:git push origin --tags
  3. 如果標籤已經推送到遠程,要刪除,則先刪除本地:git tag -d <tag-name>,然後刪除遠程:git push origin :refs/tags/<tag-name>

十五、關聯遠程庫

  1. 命令:git remote add origin [email protected]:用戶名/項目名.git
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章