Git常用操作
Git
显示单次commit的改动内容
git show commit-id
git show HEAD~
什么都不带的时候默认显示最近的一次
git show
patch相关
- 生成patch
git format-patch HEAD^ - 应用patch,保留commit信息
git am file - 打patch,但是不保留commit信息
git apply file
git log特定搜索
- 搜索特定的作者
git log --author name - 搜索特定的title
git log --grep title
*只查看和某个文件相关的git log
git log filename
git stash的用法
详见git-stash用法小结
常见情景:在git pull的时候提示有本地未保存的修改,此时开发到一半不想要提交也不想删除的时候
git stash 把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录
git stash list 查看现有的stash目录
git stash pop 应用之前缓存的最近一个记录
谨慎使用
git stash drop <stash@{0}> 删除某一个指定的stash
git stash clear删除所有缓存的stash
github fork 出的仓库怎样与原仓库保持一致
git remote -v查看远程库地址;git remote add upstream XXXXXXXXXXXXXXX.git//upstream 设置原仓库的名字,后面是原仓库的地址;git fetch upstream//抓取原仓库的修改文件git checkout XXX// 切换到需要合并的本地仓库的本地分支。git merge upstream/dev//将原仓库的Dev 分支与本地仓库的当前分支合并git push origin XXX_branch//将当前仓库的本地分支推送到远程分支
git 如何修改已经提交到repo的commit
利用交互式rebase
-
git rebas1. e -i HEAD~N //N是你要修改的倒数第几次commit
-
修改打开的文档,类似于这样
pick abcdef1 Commit message 1
pick abcdef2 Commit message 2
pick abcdef3 Commit message 3如果只修改commit message, 将对应的pick改成reword,
如果要修改code将pick改为edit
如果要合并多个commit,保留最近一个为pick,其他的改为squash -
保存修改
-
git rebase --continue
-
git push origin branch-name -f //强制推送,注意要非常小心!
git revert 单个commit
如果想要撤回之前的某个commit直接执行
git revert <commit-id>
downstream向upstream提交的branch
比如downstream要想upstream的branch A提交,要先fetch最新的branch A到本地branch a,然后checkout一个新的branch aa,从aa向A提交而不是从a,防止需要覆盖的情况出现

浙公网安备 33010602011771号