git 删除远程主分支及其它操作
1. 删除远程分支
如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放稳定代码的地方),可以用这个非常无厘头的语法来删除它:git push [远程名] :[分支名]。
如果想在服务器上删除 serverfix 分支,运行下面的命令(推送一个空分支到远程分支,其实就相当于删除远程分支:):
$ git push origin :serverfix
To git@github.com:schacon/simplegit.git
- [deleted] serverfix
2. 新建远程分支
就是本地分支push到服务器上。比如master就是一个最典型的远程分支(默认)。
$ git push origin unfull-flush
Total 0 (delta 0), reused 0 (delta 0)
To http://192.168.0.95/git/private/rk2906-android.git
* [new branch] unfull-flush -> unfull-flush
3. 获取特定分支代码
远程分支和本地分支需要区分好,所以,在从服务器上拉取特定分支的时候,需要指定远程分支的名字。
注意该命令由于带有--track参数,所以要求git1.6.4以上!这样git会自动切换到分支。
$ git checkout --track origin/unfull-flush
4. 提交分支数据到远程服务器
git push origin <local_branch_name>:<remote_branch_name>
$ git push origin unfull-flush:unfull-flush
5. 删除本地分支
git branch -D [branch-name]
$ git branch -D master #删除本地的master分支(错误版本在master分支上)
git reset HEAD filename 从暂存区中移除文件
git reset --hard HEAD~3 会将最新的3次提交全部重置,就像没有提交过一样。
git reset --hard commit (38679ed709fd0a3767b79b93d0fba5bb8dd235f8) 回退到 38679ed709fd0a3767b79b93d0fba5bb8dd235f8 版本
6. SPECAIL: 在删除远程master分支时,
在远程服务器上配置:
$ git config receive.denyDeleteCurrent warn
在本地pc上:
$ git push origin :master
7
"abook_beta_v1.2_2012_12_21_out_software" 为 tag 名
创建带注释的tag
git tag -a abook_beta_v1.2_2012_12_21_out_software -m '软件不完全版本'
删除tag
git tag -d abook_beta_v1.2_2012_12_21_out_software
合并远程仓库的tag到本地
git pull origin --tags
上传本地tag到远程仓库
git push origin --tags
用push, 删除远程tag
git push origin :refs/tags/abook_beta_v1.2_2012_12_21_out_software