有时我想删除远程分支然后再次推送,例如我已经修改了本地已经被推送的提交。 (别担心,如果我是唯一一个在该分支上工作的人,我只会这样做。)
在我执行" keytool -genkeypair -keysize 2048 -keyalg RSA -alias appalias -keystore D:\..\..
"之后,我可以使用" git push origin --delete BRANCHNAME
"。
如果分支已被删除,为什么" git push
"实际工作?
为什么我不需要做一个" git push
"再次?
答案 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
它在远程端重新创建分支。