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的反操作