3. Git 與 GitHub 管理 - ZoeHYH/mentor-program-4th GitHub Wiki

Git 與 GitHub

Git 是一個版本管理系統,應對同時存在1-4、5-7、8-9......等各種版本的情境。

GitHub 則是一個雲端服務,讓工程師們可以遠端管理程式。

檔案狀態

  1. Untracked 未追蹤
  2. Modified 已修改 in Working Directory
  3. Staged 暫存 in Staging Area
  4. Committed 已儲存 in Repository

基本操作指令

初始化

git init #在這個位址建立 .git 資料夾
git add 檔案/. # Untracked/Modified 的該/全部檔案變 Staged
git commit # Staged 需 vim 添加'敘述',全部 Committed
git commit -m"版本敘述" #不用開 vim
git commit -am"版本敘述" # Modified 檔案全部 Committed ,不含 Untracked

查看移動

git status #查看檔案的狀態階段
git log #版本、 Branch 歷史紀錄
git log --oneline #簡短資訊
git checkout 六碼版本代碼/ Branch #進入該版本、 Branch
git diff #比較 Modified 檔案與上一版本差異
git diff 檔案 #比較 Modified 的本檔案與上一版本差異
git diff 版本代號 #比較 Modified 檔案與該版本差異
git diff 版本代號 版本代號 #比較兩版本差異
git show #詳列修改內容
git help 指令 #查詢說明
git 指令 --help

不控制

加到忽略名單

touch .gitignore #建立名單
vim .gitignore #編輯名單加入檔案名稱

徹底刪除該檔案的版本

git rm --cached 檔案/. #該/全部檔案變 Untracked

版本移出 Staged

git reset HEAD 檔案 # Staged 變 Modified

個人化

git config --global alias.縮寫 原指令 #常用指令縮寫

Branch

團隊平行開發時使用,可從不同版本拉出分支開發,最後再合併 Merge 。

搭配 git checkout 跳轉

基本操作

git branch 分支名稱
git branch -d 分支 #刪除

查看

git branch -v #詳列分支清單
git branch -a #列分支清單

融合

git merge 另一分支 #當前分支被另一分支融入

衝突

#衝突內容會被標示
git status #查詢衝突檔案
vim 檔案 #手動修改
git commit -am "版本敘述" #儲存

Git Workflow

一套命名與融合分支的流程。

  • master :主程式,被合併,不開發
  • hotfix :主緊急修復,來自 master ( develop 可能開發中),併到 master 和 develop
  • release : 主測試,來自 develop,併到 master 與 develop
  • develop :主開發,來自 master ,併到 release
  • feature :主額外功能,來自也併回 develop

連結 GitHub 帳戶

HTTPS

git config --global user.name "帳戶名稱"
git config --global user.email "email"

SSH:RSA 加密演算法

#先查詢無 ~/.ssh
ssh-keygen -t rsa #出現已有金鑰的訊息就NO
# GitHub 帳戶→設定→ SSH and GPG keys →貼上 id_rsa.pub
ssh -T [email protected] #測試,初次連線需要確認

連結專案

新建專案後新建內容再上傳

#創建同名資料夾
echo "# test" >> README.md
git init
git add README.md
git commit -m "敘述"
git remote add origin 專案URL
git push -u origin master

本地專案上傳至新建專案

git remote add origin 專案URL
git push -u origin master

已有內容專案下載至本地

git clone URL #自動連結

更新

git push --set-upstream origin
git -u origin #第一次上傳 Branch
git push #上傳更新的 Branch
git pull #下載更新的 Branch