版本控制工具Git

Git版本控制工具教程網址:

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

看得見的文件叫工作區,而.git文件是Git版本庫,其中最重要的稱爲暫存區。Git會自動創建唯一一個master分支即爲主分支。簡單理解爲,需要提交的文件修改通通放到暫存區,然後,一次性提交暫存區的所有修改。

注:以下紅色標記爲常用命令,其他可自行理解!

  1. 創建Git倉庫。git init
  2. 遠程庫已經準備好了,下一步是用命令git clone克隆一個本地庫:git clone[email protected].git git clone 需要在新的目錄下,不能放在 一個已有git項目下;要克隆一個倉庫,首先必須知道倉庫的地址,然後使用git clone命令克隆。Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。
  3. 查看版本庫當前狀態。git status
  4. 向Git庫中添加或刪除文件,實際上就是把文件修改添加到暫存區。git add . / git rm
  5. 把文件提交更改到倉庫,實際上就是把暫存區的所有內容提交到當前分支。git commit -m "註釋"
  6. 在提交後查看提交記錄。git log
  7. 把本地庫的內容推送到遠程,用git push命令,實際上是把當前分支master推送到遠程。git push origin master/release
  8. 查看分支:git branch
  9. 切換分支:git checkout <name>
  10. 創建+切換分支:git checkout -b <name> 創建dev分支並切換到dev分支。git checkout -b dev
  11. 刪除分支:git branch -d <name>

強制刪除。git branch -D

  1. 丟棄工作區的修改。git checkout其實是用版本庫裏的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。

git checkout --file

  1. 回退到上一個版本:git reset HEAD^
  2. 既可以回退版本,也可以把暫存區的修改回退到工作區(當我們用HEAD時,表示最新的版本)git reset HEAD file
  3. 合併某分支到當前分支:git merge <name>
  4. 查看當前的Git庫中有那些文件。git ls files
  5. 查看修改內容。git diff
  6. 提交後,查看工作區和版本庫裏面最新版本的區別。git diff HEAD
  7. 場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。

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

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

  1. 要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;

關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

  1. 查看當前分支。git branch git branch命令會列出所有分支,當前分支前面會標一個*號。
  2. dev分支的工作完成就可以切換到master分支。git checkout master
  3. 合併指定分支到當前分支。 git merge dev
  4. 合併完成後,就可以放心地刪除dev分支了。git branch -d dev
  5. 修復bug時,我們會通過創建新的bug分支進行修復,然後合併,最後刪除;當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。
  6. 要查看遠程庫的信息:git remote 或者用 git remote -v 顯示更詳細的信息。
  7. 推送分支,就是把該分支上的所有本地提交推送到遠程庫。推送時要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:git push origin master
  8. 如果多人合作,小夥伴要在dev分支上開發,就必須創建遠程origin的dev分支到本地,創建本地dev分支:git checkout -b dev origin/dev
  9. 本地新建的分支如果不推送到遠程,對其他人就是不可見的;
  • 從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠程的新提交;
  • 在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;
  • 建立本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
  • 從遠程抓取分支,使用git pull,如果有衝突,要先處理衝突。

 

  • 命令git tag <name>用於新建一個標籤,默認爲HEAD,也可以指定一個commit id;
  • git tag -a <tagname> -m "blablabla..."可以指定標籤信息;
  • git tag -s <tagname> -m "blablabla..."可以用PGP簽名標籤;
  • 命令git tag可以查看所有標籤。
  • 命令git push origin <tagname>可以推送一個本地標籤;
  • 命令git push origin --tags可以推送全部未推送過的本地標籤;
  • 命令git tag -d <tagname>可以刪除一個本地標籤;
  • 命令git push origin :refs/tags/<tagname>可以刪除一個遠程標籤。
  • 忽略某些文件時,需要編寫.gitignore;
  • .gitignore文件本身要放到版本庫裏,並且可以對.gitignore做版本管理.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章