git删除远程分支
- 查看所有的分支,有remotes/开头的就是远程分支
git branch -a - 假设要删除new-a的远程分支,我们需要先把分支切换到master,因为你现在所在的分支就是new_a,在这个分支下,是不能删除它的。使用命令:
git checkout master - 删除远程分支的命令
git push original --delete new_a(分支名) - 可能要输入账号密码,如果配置了SSH就不用了
git删除远程仓库的文件或者目录
usage: git rm [options] [--] <file>...
-n, --dry-run dry run
-q, --quiet do not list removed files
--cached only remove from the index
-f, --force override the up-to-date check
-r allow recursive removal
--ignore-unmatch exit with a zero status even if nothing matched
- 删除当前目录所有文件的索引,不包括本地文件
git -rm -r -n --cached build
用-r参数删除目录, git rm --cached … 删除的是本地仓库中的文件,且本地工作区的文件会保留且不再与远程仓库发生跟踪关系,如果本地仓库中的文件也要删除则用git rm …
git push
- 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了
- git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push original main:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应main分支, original 是远程主机名
-
git push origin master
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建 -
git push origin :refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master -
git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支 -
git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名 -
git push 的其他命令
这几个常见的用法已足以满足我们日常开发的使用了,还有几个扩展的用法,如下:- git push -u origin master 如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push,不带任何参数的git push,默认只推送当前分支,这叫做simple方式,还有一种matching方式,会推送所有有对应的远程分支的本地分支, Git 2.0之前默认使用matching,现在改为simple方式。如果想更改设置,可以使用git config命令。git config --global push.default matching OR git config --global push.default simple可以使用git config -l 查看配置
- git push --all origin 当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项
- git push --force origin git push的时候需要本地先git pull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令。
- git push origin --tags:git push 的时候不会推送分支,如果一定要推送标签的话那么可以使用这个命令
一些BUG
error: src refspec main does not match any.
分支名写错了,推送不到远程,修改本地分支名称再推送到远程就好了:
git branch -m oldName newName