常用到覺得好像不需要介紹了…。
基礎
- git init (初始化)
- git status (查看git進度)
- git diff master origin/master (看本地與遠端差異)
- git log (查commit id)
- git show
(看某個commit的diff) - git –set-upstream-to=origin (設定上游)
程式
何時pull:
在開始工作之前 (以便了解最新的更改)
在你推送之前 (以防工作時發生了變化)
- git clone (下載)
- git pull (方便,下載並自動merge到本地,需處理衝突== fetch+merge)
- git fetch origin master (安全,只下載主線程式不merge)
- git merge origin/master (合併主線到當前分支)
- git reset –hard (pull不過就覆蓋本地更改)
分支
- git branch (-r看遠端分支, -a 本機與遠端)
- git branch
(開新分支dev) - git branch –set-upstream-to=origin
(開新分支指定上游) - git checkout -b
(建立並切換到新分支dev) - git checkout -b
(基於 commit開分支) - git checkout master (切到主分支)
- git checkout -t origin/
(切換到另一個遠端分支) - git merge origin/main (將新分支合併回主線)
- how to use merge
不要怕開分支, 最少功能, 開發, 驗證三分支
只選擇某commit 合併到主線
1 | * git log 查找要合併的commit id |
回復
- git reset -h
–mixed reset HEAD and index
–soft reset only HEAD
–hard reset HEAD, index and working tree(丢弃回退的提交中的所有更改) - git reset –hard HEAD (回復到上次提交版本)
- git reset HEAD^^ –hard (^^ (两个^)表示回退2个提交)
- git reset –hard
(回復到指定的提交版本) - git reset –hard origin/main (分支同步回主線狀態)
刪除
- git branch -d
(刪除本地分支) - git branch -D
(強制刪分支) - git push origin – delete
(刪除遠端分支dev)
上傳
- git add
(或. 全add, add前要先pull) - git restore
(忽略某個檔案更動) - git clean -f (清除所有untracked files)
- git remote add
(添加遠程倉庫) - git cherry-pick
(只選特定commit) - git commit -m
- git commit –amend (修改最後一次commit)
- git push –set-upstream origin
(第一次上分支,或第一次上失敗再上一次) - git push (僅僅是推送目前所在的分支到遠端,並不會指定推送哪個分支)
- git push origin master (明確指定推送 master 分支到 origin 這個遠端)
- git push origin HEAD:master push到遠端master
異常
git reset –hard HEAD
git pull
1 | git pull |
git分支commit過的變更合併到主線
1 | git checkout master |
Repo
基於git, 用於Android程式同步
1 | 1. repo init (Installs Repo in the current directory) |
Gitflow v.s. Github flow
gitflow: master, develop, feature, release, hotfix
Release 時才合併主分支,重視穩定性github flow: master, develop
重視CICD
推薦用SourceTree視覺化
如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)