1. 程式人生 > 實用技巧 >前期準備-Git篇

前期準備-Git篇

Git安裝及常用命令介紹


在windows上安裝Git

Git官網安裝,選項預設。

選單欄有:Git > Git Bash。即使安裝成功。

然後你需要執行Git Bash,並且進行身份設定。

$ git config --global user.name "XXXXXXXX"
$ git config --global user.email "XXXXXXXX"

因為Git是分散式版本控制器,所以,每個機器必須自報家門。


建立版本庫

版本庫又名倉庫,英文名repository。被Git管理,修改、刪除都能追蹤歷史,還能還原某個指定的檔案狀態。

在一個合適的地方,右鍵開啟Git Bash。

$ mkdir XXXX    // 建立資料夾   XXXX用英文     
$ cd XXXX       // 進入資料夾  
$ pwd           // pwd顯示當前目錄。

然後,通過 git init 命令將這個目錄變成Git可以管理的倉庫

$ git init              // 初始化專案

把檔案新增到版本庫

所有的版本控制系統,其實只能跟蹤文字檔案的改動,比如TXT檔案,網頁,所有的程式程式碼等等,Git也不例外。建議下載Notepad++代替記事本,把Notepad++的預設編碼設定為UTF-8 without BOM即可。

第一步:

$ git add readme.txt    //
用git add告訴Git,把檔案新增到倉庫。檔案跟蹤
                (這個檔案提前已經建立好,並且在 初始化 的檔案下)
$ git add .        // 批量跟蹤 . 是匹配所有檔案,提交被修改的和新建的檔案,但不包括被刪除的檔案

第二步:

$ git commit -m "寫本次提交說明的地方"    // git commit 最終提交給倉庫 -m 方便知曉每次提交的意義d 
$ git commit -am 'xxx'    // 將所有已跟蹤的檔案暫存起來一併提交
// 成功後顯示:
1 file changed        // 一個檔案被改動(我這裡是添加了一個 .txt 檔案)
2 insertions // 插入兩行內容(這是因為我新增的 .txt 檔案裡有兩行內容)

git add 可以多次 add 不同檔案,像是一個暫緩區,(或者說先跟蹤這些檔案)

git commit 是最終確定一次提交很多檔案給倉庫。

回顧:

初始化一個Git倉庫,使用git init命令。

新增檔案到Git倉庫,分兩步:

  1. 使用命令git add <file>,注意,可反覆多次使用,新增多個檔案;
  2. 使用命令git commit -m <message>,完成。

遠端倉庫準備

第一步:建立SSH key。 C盤使用者主目錄下看看有沒有.ssh目錄,裡面要是有id_rsa和id_rsa.pub這兩個檔案,可以跳過第一步,如果沒有就建立。

$ ssh-keygen -t rsa -C "[email protected]"     // 自己的郵箱地址

然後一路回車預設值就行。

id_rsa是私鑰,不能洩露。id_rsa.pub是公鑰可以。

第二步:登入Github,點頭像 => settings => SSH and GPG keys => New SSH key ,然後title任意填,在Key文字框裡貼上 id_rsa.pub 。

點選 Add SSH key 就可以了。

新增遠端倉庫:

先在Github上建立新的專案。

Your repositories => New => 填上倉庫名字 然後確定。

開始本地推送:

這個時候還是空倉庫,可以根據Github提示關聯本地倉庫。

git remote add origin [email protected]:chengzheng777/Gxiaomi.git

然後提交本地庫推送:

$ git push -u origin master    -u 指定一個預設的源 

第一次使用Git 的clone 或者 push 連線Github 會有一個警告:

$ git push -u origin master      
The authenticity of host 'github.com (XX.XXX.XXX.XXX)' can't be established.
RSA key fingerprint is xxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

這是因為SSH連線在第一次驗證Github伺服器key時,需要你確認Github的Key的指紋資訊是否真的來自Github的伺服器,輸入 yes 就可以了。

然後會彈出一個警告,告訴你把Github的Key新增信任了。

Warning: Permanently added 'github.com,XXXXXXXX' (RSA) to the list of known hosts.

然後就正常了,以後也不會再警告。

把本地庫的內容推送到遠端,用git push命令,實際上是把當前分支master推送到遠端。

由於遠端庫是空的,我們第一次推送master分支時,加上了-u引數,Git不但會把本地的master分支內容推送的遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。

推送成功後能在Github上看到內容。

從此,本地提交簡化。

$ git push origin master

or

$ git push

從遠端倉庫克隆:

$ git clone [email protected]:XXXXXXXX.git


初始化新倉庫 git init 檢視檔案狀態 git status 檔案跟蹤 git add XXX
//跟蹤某個檔案 git add . // 批量跟蹤 檔案提交本地倉庫 git commit // 提交檔案到本地倉庫 git commit -m 'xxx' // xxx是你本次提交的資訊說明 git commit -am 'xxx' // 將所有已跟蹤的檔案暫存起來一併提交 推送遠端倉庫 git push origin xxx // 可以通過 -u 指定一個預設的源 git push -u oright xxx // 這樣以後 push 就不用加 origin git push 拉去遠端倉庫 git pull origin xxx // 可以簡寫 git pull, 如果提示no tracking information, 我們可以 通過下面方法建立追蹤,後續就可以直接 git pull了 git branch --set-upstream branch-name origin/branch-name 差異比較 。 git diff 檢視歷史提交 git log //按提交時間列出所有的更新,最近的更新排在最上面 git log --oneline //檢視簡要的歷史記錄 git reflog //用來記錄每一次命令, 常用來輔助版本切換

分支管理

git branch              // 檢視分支          branch: 分,分叉,枝條
git branch <name>       // 建立分支          checkout: 檢視
                              switch: v:交換,替換  n:開關
git checkout <name>                   merge:合併    
git swith <name>        // 切換分支

git switch -c <name>    // 建立+切換分支

git merge <name>        // 合併某分支到當前分支

git checkout -b xxx         // 可以快速新建並切換到新的分支

git branch -d xxx           // 當分支合併到主分支, 這個分支就可以通過-d刪除了

git branch -D xxx           // 刪除那些沒有被合併的分支

git branch -a               // 檢視所有分支

git branch -vv              // 檢視當前的本地分支與遠端分支的關聯關係