1. 简化日志
git log –pretty=oneline
2. 版本回退
回退至上一个版本:git reset --hard HEAD^
回退至上上版本: git reset --hard HEAD^^
回退至前n个版本: git reset --hard HEAD~n
3. 获取版本号
git reflog
4. 撤销修改
方法一:手动修改;
方法二:回退至上一个版本;
方法三:撤销修改:git checkout -- file
5. 删除文件
先使用rm删除本地文件,然后再commit提交修改。
6. 推送本地分支到远程分支
git remote add origin https://github.com/yuzhangogogo/testgit.git
git push -u origin master
7. 创建合并分支
创建dev分支:git checkout -b dev
提交commit至dev分支: git commit -m
切换到master分支:git checkout master
合并dev分支: git merge dev
删除dev分支:git branch -d dev
8. 解决冲突
切换master分支:git checkout master
合并dev分支:git merge dev
解决冲突: git status, cat 111.txt
重新提交: git add 111.txt, git commit -m "conflict fixed"
9. bug分支
当前的开发还没解决,临时接到十分紧急的bug修复时,可先将当前工作环境隐藏,解决后再恢复。
隐藏当前工作环境:git stash
在需要修复的分支上创建临时分支:git checkout master, git checkout -b issue-404
解决bug:git add 111.txt, git commit -m "fix bug"
合并bug分支:git checkout mastet, git merge issue-404
删除bug分支:git branch -d issue-404
切换回原工作分支:git checkout dev
恢复工作环境:git stash apply
继续开发余下问题:git add 111.txt, git commit -m "add one line"
删除stash内容:git stash drop
10. 协作开发
两个开发dev1 和dev2协作开发远程某一个分支,可能会出现冲突。
dev1拉取远程分支: git clone https://github.com/yuzhangogogo/testgit.git
将远程dev分支拉取到本地:git checkout –b dev origin/dev
开发:git add 111.txt, git commit -m "add some line for dev1"
dev1将分支推送到远程:git push origin dev
dev2拉取远程分支: git clone https://github.com/yuzhangogogo/testgit.git
将远程dev分支拉取到本地:git checkout –b dev origin/dev
开发:git add 111.txt, git commit -m "add some line for dev2"
dev2将分支推送到远程:git push origin dev
先用git pull把最新的提交从origin/dev抓下来:git pull
在本地合并,解决冲突:git add 111.txt, git commit -m "fix conflict for dev1"
最后,再推送本地分支:git push origin dev