git 經常使用命令

git 經常使用命令


基於上面的圖片,咱們來了解一些概念node

  1. 版本庫 .git文件
  • 當咱們使用git管理文件時,好比git init時,這個時候,會多一個.git文件,咱們把這個文件稱之爲版本庫。
  • 另一個做用就是它在建立的時候,會自動建立master分支,而且將HEAD指針指向master分支。
  1. 工做區
  • 本地項目存放文件的位置
  • 能夠理解成圖上的workspace
  1. 暫緩區(Index/Stage)
  • 顧名思義就是暫時存放文件的地方,經過是經過add命令將工做區的文件添加到緩衝區
  1. 本地倉庫(Repository)
  • 一般狀況下,咱們使用commit命令能夠將暫存區的文件添加到本地倉庫
  • 一般而言,HEAD指針指向的就是master分支
  1. 遠程倉庫(Remote)
  • 舉個例子,當咱們使用GitHub託管咱們項目時,它就是一個遠程倉庫。
  • 一般咱們使用clone命令將遠程倉庫代碼拷貝下來,本地代碼更新後,經過push託送給遠程倉庫。

git文件狀態 - git status

  • changes not staged for commit - 表示得大概就是工做區有該內容,可是緩存區沒有,須要咱們git add
  • changes to be commit - 表示文件放在緩存區了,咱們須要git commit
  • nothing to commit,working tree clean - 這個時候,咱們將本地的代碼推送到遠端便可

常見命令

分支管理

  • 查看本地分支 - git branch
  • 查看遠程分支 - git branch -r
  • 查看本地和遠程分支 -git branch -a
  • 從當前分支,切換到其餘分支 - git checkout <branch-name>
  • 建立並切換到新建分支 - git checkout -b <branch-name>
  • 刪除本地分支 - git branch -d/-D <branch-name>
  • 當前分支與指定分支合併 - git merge <branch-name>
  • 查看各個分支最後一個提交對象的信息 - git branch -v
  • 刪除遠程分支 - git push origin -d <branch-name>git push origin :<brnach-name>
  • 重命名分支 -git brnach -m <oldbranch-name> <newbranch-name>
  • 拉取遠程分支並建立本地分支 - git checkout -b 本地分支名 origin/遠程分支名xgit fetch origin <branch-name>:<local-branch-name>
  • 遠程倉庫內容更新到本地 - git fetch
  • 命令用於從遠程獲取代碼併合並本地的版本 - git pull

花式撤銷

使用場景:
場景1:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- filegit

場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步
第一步:用命令git reset HEAD <file>,就回到了場景1;
第二步:按場景1操做。緩存

場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫。fetch

差別比較

  • 比較工做區與緩存區 - git diff
  • 比較緩存區與本地庫最近一次commit內容 - git diff -- cached
  • 比較工做區與本地最近一次commit內容 - git diff <commit ID> <commit ID>

解決衝突

當Git沒法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。spa

解決衝突就是把Git合併失敗的文件手動編輯爲咱們但願的內容,再提交。指針

忽略文件 .gitignore

這個文件的做用,會去忽略一些不須要歸入Git管理這種,咱們也不但願出如今未跟蹤文件列表。code

# 此行爲註釋 會被Git忽略

# 忽略 node_modules/ 目錄下全部的文件
node_modules


# 忽略全部.vscode結尾的文件
.vscode

# 忽略全部.md結尾的文件
*.md

# 但README.md 除外
!README.md

# 會忽略 doc/something.txt 但不會忽略doc/images/arch.txt
doc/*.txt

# 忽略 doc/ 目錄下全部擴展名爲txt文件

doc/**/*.txt

合併上線流程

  1. git fetch - 拉取遠程分支(獲取到要合併的分支)
  2. git checkout <要合併的分支>
  3. git pull origin <要合併的分支>
  4. git checkout qa/develop
  5. git merge <要合併的分支>對象

    • 無衝突 - 執行 4
    • 有衝突 - 先解決衝突,解決完衝突之行git add git commit
  6. git push origin qa/develop
  7. 若是上線則需把develop合併到release
  8. 添加白名單

參考圖片

  1. 「新手入門福利」一張腦圖帶你掌握Git命令
  2. https://www.liaoxuefeng.com/w...
相關文章
相關標籤/搜索