庫管理
克隆庫
git clone https://github.com/php/php-src.git
git clone --depth=1 https://github.com/php/php-src.git # 只抓取最近的一次 commit
歷史管理
查看歷史
git log --pretty=oneline filename # 一行顯示
git show xxxx # 查看某次修改
標(biāo)簽功能
git tag # 顯示所有標(biāo)簽
git tag -l 'v1.4.2.*' # 顯示 1.4.2 開頭標(biāo)簽
git tag v1.3
# 簡單打標(biāo)簽
git tag -a v1.2 9fceb02 # 后期加注標(biāo)簽
git tag -a v1.4 -m 'my version 1.4' # 增加標(biāo)簽并注釋, -a 為 annotated 縮寫
git show v1.4 # 看某一標(biāo)簽詳情
git push origin v1.5 # 分享某個標(biāo)簽
git push origin --tags # 分享所有標(biāo)簽
回滾操作
git reset 9fceb02 # 保留修改
git reset 9fceb02 --hard # 刪除之后的修改
取消文件的修改
git checkout -- a.php # 取消單個文件
git checkout -- # 取消所有文件的修改
刪除文件
git rm a.php # 直接刪除文件
git rm --cached a.php # 刪除文件暫存狀態(tài)
移動文件
git mv a.php ./test/a.php
查看文件修改
git diff # 查看未暫存的文件更新
git diff --cached # 查看已暫存文件的更新
暫存和恢復(fù)當(dāng)前staging
git stash # 暫存當(dāng)前分支的修改
git stash apply # 恢復(fù)最近一次暫存
git stash list # 查看暫存內(nèi)容
git stash apply stash@{2} # 指定恢復(fù)某次暫存內(nèi)容
git stash drop stash@{0} # 刪除某次暫存內(nèi)容
修改 commit 歷史紀(jì)錄
git rebase -i 0580eab8
分支管理
創(chuàng)建分支
git branch develop # 只創(chuàng)建分支
git checkout -b master develop # 創(chuàng)建并切換到 develop 分支
合并分支
git checkout master # 切換到 master 分支
git merge --no-ff develop # 把 develop 合并到 master 分支,no-ff 選項的作用是保留原分支記錄
git rebase develop # rebase 當(dāng)前分支到 develop
git branch -d develop # 刪除 develop 分支
克隆遠(yuǎn)程分支
git branch -r # 顯示所有分支,包含遠(yuǎn)程分支
git checkout origin/android
修復(fù)develop上的合并錯誤
將merge前的commit創(chuàng)建一個分之,保留merge后代碼
將develop reset --force到merge前子漩,然后push --force
在分支中rebase develop
將分支push到服務(wù)器上重新merge
強(qiáng)制更新到遠(yuǎn)程分支最新版本
git reset --hard origin/master
git submodule update --remote -f
Submodule使用
克隆帶submodule的庫
git clone --recursive https://github.com/chaconinc/MainProject
clone主庫后再去clone submodule
git clone https://github.com/chaconinc/MainProject
git submodule init
git submodule update
Git設(shè)置
Git的全局設(shè)置在~/.gitconfig中拍嵌,單獨設(shè)置在project/.git/config下输拇。
忽略設(shè)置全局在~/.gitignore_global中支救,單獨設(shè)置在project/.gitignore下抢野。
設(shè)置 commit 的用戶和郵箱
git config user.name "xx"
git config user.email "xx@xx.com"
或者直接修改config文件
[user]
name = xxx
email = xxx@xxx.com
查看設(shè)置項
git config --list
設(shè)置git終端顏色
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto