1. git的配置
配置提交信息
git config --global user.name w_xue
git config --global user.email [email protected]
配置顏色
git config --global color.ui true
配置命令別名
git config --global alias.st status
配置比較工具(bc3爲beyond compare3的入口鏈接)
git config --global diff.tool bc3
git config --global difftool.prompt false
2.提交
跟蹤新添加的文件
git add a.txt
取消跟蹤文件
git rm a.txt
由工作區修改提交到暫存區
git add a.txt
由暫存區提交到倉庫區
git commit -m "modify a.txt"
修改上次提交信息
git commit --amend
取消暫存,回到工作區修改狀態
git reset -- a.txt
取消修改,回到工作區未修改狀態
git checkout -- a.txt
3. 查看修改
工作區未暫存的修改
git diff
已經提交到暫存區所做的修改
git diff --staged
工作區所做的所有修改
git diff HEAD
4.分支操作
查看分支
git branch
創建新的跟蹤分支
git checkout -b branchname
切換分支
git checkout branchname
刪除分支
git branch -D branchname
5. reset操作
將HEAD強制指向其它commit
git reset --hard huehdkdu24
將HEAD強制指向其它commit,同時保留工作區的改動
git reset --mixed huehdkdu24
將HEAD強制指向其它commit,同時暫存工作區的改動
git reset --soft huehdkdu24
6. cherry-pick
apply一個存在的commit
git cherry-pick commit-id
例如現有commit id: a, b, c, d, e ,需要將cd合併爲一個commit,步驟如下
新建一個分支: git checkout -b local
回到d:git reset --hard d
回到b,同時保留工作區修改: git reset --soft b
提交: git commit -m "cd"
apply缺失的commit :git cherry-pick e
7. checkout
回到某次commit或者將某個文件恢復到某次commit的狀態
git checkout commit-id file-name
例如現有commit id: a, b, c, d, e,在d中將文件a.txt做了錯誤修改,需要將這個文件恢復
checkout出修改前的文件: git checkout c a.txt
提交修改: git commit -m "修復對文件a.txt的錯誤修改"
8. 比較commit差異(先配置difftool爲beyond compare)
git difftool commit1 commit2 file_path &
9. 後悔某次提交
現有提交a->b->c->d,突然發現提交c是多餘的,但是已經push到服務器上去,此時最好的做法是添加一個commit e,效果抵消掉c
git checkout -b c
git revert HEAD
這時提交會變爲a->b->c->e
其中e即爲c的反操作