为什么" git push"做完后的工作" git push origin --delete BRANCHNAME"?

时间:2015-09-30 13:51:51

标签: git git-push

有时我想删除远程分支然后再次推送,例如我已经修改了本地已经被推送的提交。 (别担心,如果我是唯一一个在该分支上工作的人,我只会这样做。)

在我执行" keytool -genkeypair -keysize 2048 -keyalg RSA -alias appalias -keystore D:\..\.."之后,我可以使用" git push origin --delete BRANCHNAME"。

如果分支已被删除,为什么" git push"实际工作?
为什么我不需要做一个" git push"再次?

1 个答案:

答案 0 :(得分:1)

为了说明larsks'comment,这里有一个包含跟踪上游分支的本地分支的回购:

C:\Users\vonc\prog\b2dpres>git br -avv
* prez                  13a1c36 [origin/prez] 20150923

推动删除分支:

C:\Users\vonc\prog\b2dpres>git push origin --delete prez
To https://VonC@github.com/VonC/b2d.git
 - [deleted]         prez

这不会改变本地配置:

C:\Users\vonc\prog\b2dpres>git config --local --get-regexp branch.prez
branch.prez.remote origin
branch.prez.merge refs/heads/prez

也不删除本地分支:

C:\Users\vonc\prog\b2dpres>git br -avv
* prez                  13a1c36 [origin/prez: gone] 20150923

(注意“消失了”)

一个简单的git push会知道要推送什么(本地当前分支prez),其中(到origin)和哪个分支(到其跟踪分支origin/prez

C:\Users\vonc\prog\b2dpres>git push
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (10/10), 763.97 KiB | 0 bytes/s, done.
Total 10 (delta 2), reused 1 (delta 0)
To https://VonC@github.com/VonC/b2d.git
 * [new branch]      prez -> prez

它在远程端重新创建分支。