删除untracked files
在编译git库拉下来的代码时,往往会产生一些中间文件,这些文件我们根本不需要,尤其是在成产环节做预编译,检查代码提交是否能编译通过这种case时,我们往往需要编译完成后不管正确与否,还原现场,以方便下次sync代码时不受上一次的编译影响。
git clean -f
:删除 untracked filesgit clean -fd
:连 untracked 的目录也一起删掉git clean -xfd
:连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
不过在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nf
git clean -nfd
git clean -nxfd
删除远程分支和本地分支
当进行团队项目开发时,将自定义分支push到远程分支或主分支之后,如何删除自定义的分支呢
git branch -a
:查看所有分支(其中带 remote/origin 的是远程分支)git push origin --delete SessionA
:删除远程分支 SessionAgit branch -d SessionB
:删除本地分支SessionB
将某分支的某次提交copy到另一分支
在项目开发时,往往会有多个版本,对于某次修改,若1.0版本提交后,需要在2.0上进行同样的修改,便可在2.0上进行copy
git log
:在1.0版本上查找提交历史,记录那次的commitID,如7fcb3defffgit cherry-pick 7fcb3defff
:在2.0版本上copy那次commit,此时在2.0上可以直接push
删除具体某个提交commit
在push代码前如果用pull拉分支最新的代码时,往往会产生一个多余的commit记录
git log
:查看提交历史git rebase -i (commit-id)
:其中commit-id为待删除commit的前一个commit- 把该commit前面的pick改为drop即可
git push origin HEAD --force
:需要强推到远程分支- 注意:可能有的git不支持drop,具体取决于你的git版本。若不支持,便会切换到其他分支