標籤:

Git教程學習筆記

環境

在windows上下載git,下載地址,然後按默認選項安裝即可,安裝完成後,在開始菜單里找到「Git」->「Git Bash」,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!

1.png

安裝完成後,還需要最後一步設置,在命令行輸入:

$ git config --global user.name "Your Name"

$ git config --global user.email "email@example.com"

因為Git是分散式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址。

創建版本庫

1.選擇一個合適的地方,創建一個空目錄

$ mkdir learngit

$ cd learngit

$ pwd

/Users/michael/learngit

2,通過git init命令把這個目錄變成Git可以管理的倉庫:

$ git init

Initialized empty Git repository in /Users/michael/learngit/.git/

把文件添加到版本庫

1.編寫一個readme.txt文件,放到倉庫目錄下,即放到learngit目錄下。

2,用命令git add告訴Git,把文件添加到倉庫:

$ git add . readme.txt.

3.用命令git commit告訴Git,把文件提交到倉庫:

$ git commit -am "wrote a readme file"

[master (root-commit) cb926e7] wrote a readme file

1 file changed, 2 insertions(+)

create mode 100644 readme.txt

版本控制

成功地添加並提交了一個readme.txt文件,如果修改readme.txt文件。

  • 要隨時掌握工作區的狀態,使用git status命令。
  • 如果git status告訴你有文件被修改過,用git diff可以查看修改內容。

版本回退

  • HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。
  • 穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
  • 要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本

撤銷修改

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

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

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

刪除文件

  • 一是確實要從版本庫中刪除該文件,那就用命令git rm刪掉,並且git commit:
  • 另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕鬆地把誤刪的文件恢復到最新版本:

    $ git checkout -- test.txt

    git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。

添加遠程庫

  • 要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;
  • 關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;
  • 此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

從遠程庫克隆

  • 要克隆一個倉庫,首先必須知道倉庫的地址,然後使用git clone命令克隆。
  • Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。

創建與合併分支

Git鼓勵大量使用分支:

  • 查看分支:git branch
  • 創建分支:git branch <name>
  • 切換分支:git checkout <name>
  • 創建+切換分支:git checkout -b <name>
  • 合併某分支到當前分支:git merge <name>
  • 刪除分支:git branch -d <name>

解決衝突

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

多人協作

  • 查看遠程庫信息,使用git remote -v;
  • 本地新建的分支如果不推送到遠程,對其他人就是不可見的;

-從本地推送分支,使用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>可以刪除一個遠程標籤。

    參考文章:

    廖雪峰Git教
  • git官網

推薦閱讀:

HTML5學習線路
《Oli-Zhao的前端一萬小時》之:工欲善其事,必先利其器——軟體安裝、環境搭建
可能是最全的 Node.js 9 新特性整理
你能夠想到多少種讓元素居中的方法?
愛搞事情的webpack

TAG:前端入門 |