隨着 git 的使用廣泛化,如今更須要關注使用的規範流程,在此紀錄。html
能夠自定義修改 左側 label 文字,右側顏色
原由ios
git pull origin xxx --rebase # 直接按 rebase 的方式執行 pull git config --global pull.rebase true
使用 rebase 就感受全部人都在同一條直線上開發同樣,很乾淨的 log,看着很舒服,而直接使用 pull 的 log 看起來就很亂。git
git pull --rebasegithub
* | b9feea8 - chore: 添加C前往A埋點 (6 hours ago) <yanyue404> * | b3047fe - fix: ISO8601 time (6 hours ago) <yanyue404> * | bfb6c84 - test: formatTimeStr 兼容 ios (7 hours ago) <yanyue404> * | 0e13196 - chore: IOS 時間處理 (22 hours ago) <yanyue404> * | f15a0e8 - chore: 遊客在名片頁面進行受權 (24 hours ago) <yanyue404> * | ee8b125 - chore: 完善我的名片 (25 hours ago) <yanyue404> * | deb7a5a - chore: 我的名片添加用戶角色校驗 (26 hours ago) <yanyue404> * | 5106b02 - chore: 開始識別用戶角色 (27 hours ago) <yanyue404> * | f16b6af - chore: 更換 appid (31 hours ago) <yanyue404> * | 7216da4 - chore: 同步 code (31 hours ago) <yanyue404> * | 9e542b4 - chore: uat 更新 (6 days ago) <yanyue404> * | 473e311 - fix: 修改環境 (6 days ago) <yanyue404> * | f54ae0f - chore: 埋點 (5 hours ago) <yanyue404>
git pullnpm
* | ae57454 - feat: token 過時強制從新認證 (2 days ago) <yanyue404> * | 1b02194 - Merge remote-tracking branch 'origin/prod' into prod (2 days ago) <Joe> |\ \ | * | 6284b85 - fix: 登陸流程短視頻播放 (2 days ago) <yanyue404> | * | 2bcb162 - styles: canvas 分享圖位置優化 (2 days ago) <yanyue404> | * | d4c66a6 - chore: 頁面分享控制 (2 days ago) <yanyue404> | * | 91baa28 - chore: 我的名片非分享人文字修改 (2 days ago) <yanyue404> * | | 60715e9 - 修改保單判斷 (2 days ago) <Joe> |/ / * | 85f1032 - Merge remote-tracking branch 'origin/prod' into prod (2 days ago) <Joe> |\ \ | * | ab884df - feat: 我的名片分享頁受權 (4 days ago) <yanyue404> * | | e603434 - 優化加載速度 (2 days ago) <Joe> |/ / * | a255e59 - 微調樣式 評論換行 (4 days ago) <Joe> * | 7251630 - Merge remote-tracking branch 'origin/prod' into prod (4 days ago) <Joe> |\ \ | * | 1bd08fc - chore: loading 優化 (4 days ago) <yanyue404> * | | 7bc0e9e - 修改視頻列表問題 (4 days ago) <Joe> |/ / * | 9e328af - 1.取消個人視頻 我的名片換上來 (4 days ago) <Joe>
Error: Filed to connecto to github.com port 443: Time out
# 設置 git config --global http.proxy http://127.0.0.1:51349 # 取消 git config --global --unset http.proxy
合併最近提交的歷史,將 ba4358d
到 a549037
變爲一個 commitjson
# 輸入 git log --online # 輸出 ba4358d (HEAD -> master, origin/master, origin/HEAD) docs: 重 ba4358d Update README.md ba4358d Update README.md # 此條目以上合併爲一條 36f95d9 docs 0312afb init
準備合併canvas
git rebase -i 36f95d9 | git rebase -i HEAD~3
選擇合併vim
# 輸出 pick ba4358d '註釋**********' pick ba4358d '註釋*********' pick ba4358d '註釋**********' # pick 的意思是要會執行這個 commit # squash 的意思是這個 commit 會被合併到前一個commit (省略寫法 s) # 在 vim 命令下輸入 i 進入編輯模式,編輯完成後 :eq 保存退出 # 輸入 pick 3ca6ec3 '註釋**********' s 1b40566 '註釋*********' s 53f244a '註釋**********'
保存完成後,你有兩個選擇bash
git rebase --continue # 確認 rebase git rebase --abort # 取消 rebase #確認後,就能夠上傳到遠程了。
若是沒有衝突,或者衝突已經解決,則會出現以下的編輯窗口, 輸入:wq
保存並推出:app
# This is a combination of 4 commits. #The first commit’s message is: 註釋...... # The 2nd commit’s message is: 註釋...... # The 3rd commit’s message is: 註釋...... # Please enter the commit message for your changes. Lines starting # with ‘#’ will be ignored, and an empty message aborts the commit.
查看歷史,已經改變
git log --oneline d2d71a5 (HEAD -> master) Update README.md 36f95d9 docs 0312afb init
git push -f # 強制覆蓋遠程 git commit --amend -m "新的註釋" # 修改最新的 git commit 註釋
提醒: 只能 master 合併其餘分支時忽略其餘分支上的文件, 其餘分支合併 master 沒法忽略 master 上的文件. (master 爲默認主分支)
git config --global merge.ours.driver true
project.config.json merge=ours fetch.js merge=ours app.js merge=ours
git merge uat
在 uat
分支上的project.config.json
、fetch.js
、app.js
就不會被合併了 !