基本設定
查看設定、設定帳號
git config --list
git config --global user.name "XXX"
git config --global user.email "XXXXXX@XXX.XXX"
移除設定
git config --global --unset user.name
git config --global --unset user.email
建立新的本地端 Repository
git init
複製遠端的 Repository 檔案到本地端
git clone [Repository URL]
提交
檢查本地端檔案異動狀態
git status
加入檔案追蹤
git add .
提交(commit)目前的異動並透過 -m
參數設定摘要說明文字。
git commit -m "提交說明內容"
查看先前的 commit 記錄
git log
同步本地與遠端 Repository
將本地端 Repository 的 commit 發佈到遠端,例如 GitHub
git push
發佈至遠端指定的分支(Branch)
git push origin [BRANCH_NAME]
拉取遠端 Repository 最新的 commit
git pull
分支
查看分支
git branch
建立分支
git branch [BRANCH_NAME]
建立並跳到該分支
git checkout -b [BRANCH_NAME]
修改分支名稱
git branch -m <OLD_BRANCH_NAME> <NEW_BRANCH_NAME>
強制刪除指定分支(須先切換至其他分支再做刪除)
git branch -D [BRANCH_NAME]
合併分支
git merge [BRANCH_NAME]
注意:
要先checkout
至被合併的分支
每次合併都要確認分支關係
復原
git reset HEAD^
強制恢復到指定的 commit(透過 Hash 值)
git reset --hard [HASH]
切換到指定的 commit(與 git checkout [BRANCH_NAME]
相同)
git checkout [HASH]
顯示參照記錄 (與 git log
不同,顯示實際變更歷史)
git reflog
強制放棄本地修改(新增、删除文件)
git checkout . && git clean -df
合併前幾個commit
git reset --soft HEAD~3 && git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"
refer: git - How do I squash my last N commits together? - Stack Overflow
Submodules
將別人的 git 掛入到你目前 git 的任何位置,相關說明參考這裡。