要開始使用 Git,首先要做的第一件事
$ git config --global user.name "Leon Chen"
$ git config --global user.email "bugsfamily@gmail.com"
$ git config --list
其它方便的設定
https://gitbook.tw/chapters/config/convenient-settings.html
新增、初始 Repository
$ mkdir git-practice # 建立 git-practice 目錄
$ cd git-practice # 切換至 git-practice 目錄
$ git init # 產生.git目錄,開始進行版控 (所有git資訊都放這裡)
把檔案加入所引交給 Git 控管
$ git status # 用來查詢現在這個目錄的「狀態」
$ git add --all # 把檔案交給Git控管 (放到暫存區 Staging Area)
$ git reset HEAD # 還沒commint 可以取消索引
新增版本到本地Repository
$ git commit -m "主旨" # "commit 主旨" (放到儲存庫 Repository)
$ git reset # 退回上一個commit (一般不會這樣做)
會覺得要先 add 再 commit 有點囉嗦嗎?
可以在 Commit 的時候多加一個 -a 的參數,縮短這個流程:
$ git commit -a -m "update content"
這樣即使沒有先 add 也可以完成 Commit。但要注意的是這個 -a 參數只對已經存在 Repository 的檔案有效,對還是新加入的檔案(也就是 Untracked file)是無效的。
連結GitHub
$ git remote add 網址 (GitHub提供的網址)
複製上傳到GitHub Repository
$ git push -u origin master
# origin 數據庫名稱 (同時連結時不能重複) 或 每個都不能重複?
# master 數據分支名稱
檢視紀錄
https://gitbook.tw/chapters/using-git/log.html
$ git log --oneline --graph
移動HEAD指標 (時光回溯)
$ git checkout HA碼 # 前往HA碼所在的commit 位置
$ git checkout 分支名稱 # 前往分支名稱的最新版本
https://www.youtube.com/watch?v=zwqp2tnU-eA&list=PLYrA-SsMvTPOZeB6DHvB0ewl3miMf-2tj&index=16
sourcetree
分支(branch)
$ git branch dev # 新增一個dev分支名稱
$ git branch # 查看現在在哪一個分支的最新版本
合併分支
$ git merge dev # 由所在位置合併到dev的位置
https://www.youtube.com/watch?v=8Tzy2xyjF_U&list=PLYrA-SsMvTPOZeB6DHvB0ewl3miMf-2tj&index=20
# git merge no-ff # 合併分支時加入注解,將當於 git commit -m "主旨" 並且把分支合併
練習
https://learngitbranching.js.org/
【常見問題】Clone 跟 Pull 指令有什麼不一樣?
簡單的說,Clone 指令通常只會使用第一次,Clone 之後的更新,就是 Pull/Fetch 的事了。