基礎命令
- git commit -m “note” 提交記錄
- git branch xxx 創建分支
- git branch -d xxx 刪除分支 git branch -D xxx 強制刪除分支
- git checkout xxx 切換分支
- git checkout -b xxx 創建並切換到分支
git merge
- git merge 合併兩個分支併產生一個新的提交記錄,包含所有修改
git merge bugFix
git checkout bugFix; git merge master
- 如果在兩個不同的分支裏,對同一個文件的同一個部分進行了不同的修改,則會產生合併衝突
- 打開衝突文件
- 修改內容來解決衝突
git rebase
- git rebase 取出一系列提交記錄,複製並提交到別的地方
git rebase master
git checkout master; git rebase bugFix
高級命令
- HEAD 一般指向當前分支上最近的一次提交記錄,可通過git checkout改變
- 相對引用:^ 向上移動一個提交記錄,~100 向上移動多個提交記錄
- 絕對引用:git log 查看提交歷史的哈希值
- git log -p -2 查看最近兩次提交併顯示內容差異
- git reflog 記錄了所有的git命令操作
移動分支
- git branch -f 分支強制移動到某個位置
git branch -f master HEAD~3
撤銷變更
- git reset 將分支記錄回退幾個提交記錄,用於本地分支
git reset HAED^
- git revert,用於遠程分支
git revert HEAD
- c2‘和c1內容相同
實戰
- git init 初始化
- git remote add origin xxx.git 綁定遠程目錄
- git clone xxx 克隆現有倉庫 默認是master分支
- git branch 查看本地分支 -r 遠程分支 -a 所有分支
- git status 查看文件狀態
- git add xxx 跟蹤新文件
- .gitignore文件裏記錄無需納入git管理的文件
遠程分支
- git push 推送到遠程服務器
- git fetch 從遠程分支上拉取本地沒有的數據,但不會修改工作目錄中的內容
- git pull 將上述兩條命令合併爲一條
- git push origin --delete xxx或者 git push origin : xxx 刪除遠程分支
- git checkout -b 本地分支名 origin/遠程分支名 拉取遠程分支並創建本地分支
git stash 暫存修改
壓縮提交記錄
- 在開發中,可能提交了很多次代碼,真正合並代碼時,不希望有冗餘的提交記錄
超級命令
git cherry-pick
- 將某些提交按順序放在HEAD下
git cherry-pick c2 c4