git 常用指令
删除远程所有分支
删除远程文件
多人协作中经常有人将中间文件提交,他人提交之后如果需要删除的话可以这样操作:
git rm -r --cached *.iml //*.iml 是需要删除的文件
git commit -m "ignore *.iml" //"ignore *.iml"是提交的备注
git push
该操作删除远程的文件,本地文件不受影响,但是别人pull代码之后本地的目录会被删除
再修改.gitignore文件将其忽略规则加上,别人就不会提交这个文件了。
gitignore文件规则,只能忽略未被添加到跟踪的文件,作用范围为当前目录的子目录
如果文件已经被跟踪,则忽略规则不生效;已经被跟踪的文件被删除后忽略规则会生效。
文件被跟踪后又被删除再被创建时如果满足忽略规则,则不会被跟踪。
重置远程分支
本地分支与远程分支不同步时,拉取所有分支:
git fetch # 将远程所有分支拉取到本地,这时候使用
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
git stash恢复文件
参考文档https://www.cnblogs.com/exmyth/p/6213129.html
今天在提交脚本的时候不小心删除了数据,瞬间崩溃了
丢代码的过程:
git stash save "暂存文件"
git pull # 下载最新的文件,下载很正常没提示错误
git stash apply stash@{0} # 将暂存的文件还原回来
git stash drop stash@{0} # 删除暂存的文件
git status # 检查文件状态
这时候提示没有任何提示,现在工作区是干净的,然后就没有然后了。我也不知道我改了哪些文件改了啥,人都懵了。
果断上网百度,发现有还原的方法,记录如下:
git fsck --lost-found # 查看最近删除的提交,其中就有git stash drop stash@{0}时的ID
git show id # 查看文件记录,id是git fsck指令查出来的ID,找到要还原的记录
git merge id # 这样就可以将记录还原了。
打标签
git tag
在控制台打印出当前仓库的所有标签git tag tagName commitId
对之前的commit打标签
git tag v1.0
对最后一次commit打标签$ git tag -a v0.1 -m "version 0.1 released" 1094adb
创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -l ‘v0.1.*’
搜索符合模式的标签git push origin [tagname]
push单个taggit push [origin] --tags
push所有tag
git checkout tagName
根据标签名检出
创建独立分支
有时候我们需要在 Git 项目仓库里面创建一个空分支,该分支不继承任何提交,没有父节点,是一个干净的分支。
步骤:
git checkout --orphan img
创建的分支会把原分支的内容拷贝过来git status
可以看到原来文件夹中的内容被拷贝过来了git rm -rf .
删除拷贝过来的原分支下的内容- 正常编写文件
git add .
暂存文件git commin -m "备注"
提交文件git push origin img
将分支推送到远程仓库