- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 git-flow
并且它所做的是每当我这样做时它都会删除我的 feature/abc
分支:
git flow feature abc finish
它在将 feature/abc
分支与 develop
分支 merge 后删除了它。之后我推送我的 develop
分支。
git push origin develop
现在,在远程我可以看到 feature/abc
分支,但在本地看不到。那么,这是否意味着它已从本地存储库中删除,并且该删除没有传送到远程?
据我了解:
冲突:
=> 假设我是代码的唯一开发者。
更新
我的问题是我在 merge 后删除了本地分支。然后我推送了我 merge 的分支,那为什么不反射(reflect)在 Remote 上呢?因为,GIT 是 DVCS,在推/pull 上应该是相同的。 [考虑到我是唯一的开发者]
我也没有要求创建它。它使分支进行了我的更改,将其 merge 回去然后删除了分支并推送了我更新的开发分支。所以,如果它自动检测到这些分支的创建,那么为什么不删除呢?
最佳答案
Since, GIT is DVCS and should be identical on push / pull.
不,这不是真的。它是分布式的,因此网络中的每个存储库或多或少包含相同的数据,但只是或多或少。当您使用推和 pull 时,您明确指定要推送的内容。
git push remote branch
仅将分支指针 branch
推送到远程存储库,并传输远程存储库构建它所需的所有提交,但不会更多。这意味着只有分支指向的提交和所有父级实际上被推送,直到远程存储库找到它已经拥有的公共(public)父级(在最坏的情况下,这是特殊的零提交,即空父级)。
同理git pull remote branch
只在本地获取构建远程分支remote/branch
所需的变更。
要真正获得所有提交,您可以使用 git fetch
,要推送所有本地分支,您可以使用 git push --all
。但同样,它只获取/推送构建分支(或标签)所需的提交,而不是存储库的所有内容。
现在,当您将分支推送到远程存储库时,它只会更新您实际推送的那些分支,因此当您删除本地远程并使用 --all
进行推送时,只会更新您的本地分支推,这不包括删除的。因此,您的本地 Git 不再知道您在本地删除了哪些分支(因为它们已 merge ),因此无法将该信息自动提供给远程存储库。然而,它可以做的是告诉远程存储库它在本地拥有的每个分支,以便远程可以找出哪些被删除了。您可以使用选项 --prune
来执行此操作。但是请注意,这会删除本地不存在的所有分支,因此在与推送不同分支但不 pull 其他分支的多个用户一起工作时可能会出现问题(尽管我实际上从未测试过)。
最好的办法显然是直接删除本地删除的分支:
git push remote :branch
关于git - 为什么推送后删除的分支没有在远程删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132744/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!