前期準備-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倉庫,分兩步:
- 使用命令
git add <file>
,注意,可反覆多次使用,新增多個檔案; - 使用命令
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 // 檢視當前的本地分支與遠端分支的關聯關係