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/learngit2,通過git init命令把這個目錄變成Git可以管理的倉庫:
$ git initInitialized 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 file1 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.txtgit 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:前端入門 |