gpt4 book ai didi

git - 为什么/什么时候应该用力 push ?

转载 作者:太空狗 更新时间:2023-10-29 13:17:01 24 4
gpt4 key购买 nike

我经常读到有关如何强制推送的信息,远程存储库中所有未被 pull 的提交都会丢失。如果一个人不需要特定的提交,他也可以创建一个新的分支,这在我看来更常见,因为你不会丢失数据,即使你现在不需要特定的代码或其他任何东西,也许你以后会需要它,我看不出有什么理由要毁掉它。

所以我的问题是我必须进行强制推送的原因是什么?

最佳答案

I often read about how to force push, and that all commits in the remote repository that are not pulled get lost

不完全是:旧的提交仍然是 referenced in the git reflog .
即使你强制推送到 GitHub,你仍然可以看到(作为 repo 所有者)被新历史覆盖的先前分支 HEAD SHA1。参见“Does GitHub remember commit IDs?”。
那还是你have to contact GitHub support .

So my question is what reason could I have to do a force push?

只要你是唯一一个在分支上工作的人(或者在 repo 上,在 fork 的情况下),你可以强制推送。
这是 common in case of a Pull Request ,其中 Web GUI 足够智能,可以自行更新以考虑新的历史记录:在将其重新定位到 upstream/master 之上之后,您可以强制推送自己的分支(再次假设您是唯一一个在它上面工作的人) (上游是被 fork 的原始仓库)
这是 triangular workflow 的一部分.

https://cloud.githubusercontent.com/assets/1319791/8943755/5dcdcae4-354a-11e5-9f82-915914fad4f7.png


OP bpoiss添加 in the comments :

VonC mentioned in his answer that the data is still present also after force push, so you can not remove sensitive information, or did I miss something?

要删除远程仓库中的敏感信息,您需要在远程服务器端执行一些命令:

$ git reflog expire --expire=now --all
$ git gc --prune=now

(来源:Remove sensitive data)

这意味着,将敏感数据推送到 GitHub 时,you have to contact GitHub support .

关于git - 为什么/什么时候应该用力 push ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34995726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com