# Git 常用指令與操作 **禁止使用** `如果要使用請告知目前使用版本的人員` ``` master: git push -f origin master ``` >如果当前分支是 protecded 的受保护分支,则 git 服务器会拒绝强制推送此时,需要将当前分支的 Protected 属性暂时去掉。可以进入当前仓库的设置中的 "Protected branches" 一项,将当前 branch 的 protected 临时去掉,等这次 push 完成,再重新设置回 protected  **在終端機輸入 安裝git** ``` sudo apt-get install git sudo apt-get upgrade ``` **上傳專案** ``` git add . git commit -m 'v1.0.0' git push ``` **送入多個遠端git** 1. 檢查當前路徑 > (push) 被推送的遠端 > (fetch) 可供拉回的遠端 ``` git remote -v > origin git@github.com:Test/Test.git (fetch) > origin git@github.com:Test/Test.git (push) ``` 2. 新增一個origin路徑 ``` git remote set-url origin --push --add <遠端路徑> ``` 3. 檢查路徑是否新增成功 ``` git remote -v > origin git@github.com:Test/Test.git (fetch) > origin git@github.com:Test/Test.git (push) > origin git@bitbucket.org:Test/Test.git (push) ``` 這樣就新增成功可以一次push兩個遠端git了 **創建 Branches** > gitlab上member拉人後, 創建 Branches 出來 ex: demoname > > 在本機端輸入以下查看本地分支 ``` git branch ``` > 應該只會看到 *master > > 輸入以下拉取遠程branch, 並在本地創建分支和遠程的分支的匹配 ``` git fetch origin demoname:demoname git fetch origin develop:develop ``` > 開發時候都是使自己的分支開發 ``` git checkout demoname ``` **合併時候** > 切換到 develop分支 ``` git checkout develop git pull git merge demoname git push ``` 不要累積大量代碼, 完成功能後就提交 > 以下為工作流程 工作分支:demoname, 主分支:master 1. 去自己的工作分支 ``` git checkout demoname ``` 2. 工作 3. 提交工作分支的修改 ``` git commit -a ``` 4. 回到主分支 ``` git checkout master ``` 5. 取獲遠程的最新修改 ``` git pull ``` 6. 回到工作分支 ``` git checkout demoname ``` 7. 用 rebase合併主分支的修改 ``` git rebase master ``` 8. 回到主分支 ``` git checkout master ``` 9. 合併工作分支的修改 ``` git merge demoname ``` 10. 提交到主分支 ``` git push ``` ## git版本回覆 ``` git log --oneline -5 //查詢最近的上傳紀錄 git reset --hard HEAD~ //此段恢復最近一段版本紀錄 ``` --- ### 如何清除本地分支 **建議動作都在dev分支上,就不會清除當前使用的分支** > 確認當前本地分支 ``` git branch | egrep -v "(^\*|master|release)" ``` > 快速清除本地 已用不到的分支 ``` git branch | egrep -v "(^\*|master|release)" | xargs git branch -D ``` > 如果要過濾特定分支名稱 可以在這邊在修改 ``` "(^\*|master|release)" ``` ###### tags: `Git` `Gitlab`