当前位置:酷酷问答>百科知识>GIT学习--(19) Git操作禁忌之git push -f

GIT学习--(19) Git操作禁忌之git push -f

2024-10-23 09:34:00 编辑:zane 浏览量:531

GIT学习--(19) Git操作禁忌之git push -f

的有关信息介绍如下:

GIT学习--(19) Git操作禁忌之git push -f

前面若干篇Git学习相关经验都在描述如何更好的使用Git,但任何好用的工具,其过度灵活性的命令还是会带来一些问题,比如 Git 提供的 git push -f 这个命令,这篇经验就告诉大家这个命令的隐患!

首先我们先看看 git push -f 这个命令是什么意思:

1. 运行 gif push -h

2. 找到 -f 参数,其实是 --force 参数的缩写

这个命令其实就是强制更新的意思! 当你在使用 git push 推送报错时,除了耐心的排除错误再推送外,你还可以使用这个命令强制推送,但通常这会造成严重的后果!

我们来通过这篇经验演示一下这个命令的"强悍"威力,首先,我们还是先看一下我们要演示的分支 mileStone 在远程仓库上的提交记录信息,操作如下:

1. 登录 GitHub2. 进入仓库,并切换到分支 mileStone

图示,我们在该分支上共有 25 次提交记录,点击进入提交记录明细页面,可以看到所有的提交明细信息。

我们后面会演示,通过 git push -f 命令,能将这所有的提交记录全部彻底删除!

我们假定因为某种需求,用户通过 git reset --hard 命令将本地分支mileStone切换到了最初版本,命令步骤如下:

1. git log --oneline

2. git reset --hard 版本对应的哈希值

3. git log --oneline

通过 git reset --hard 版本对应的哈希值 这个命令可以将本地分支强行切换到某个历史版本上,从而将本地分支的一部分提交记录彻底删除!

通过 git log --oneline 这个命令,我们可以看出上述命令的操作产生的效果!

然后我们先通过 git push 远程仓库别名 分支名 这种普通的命令形式进行推送,执行命令如下:

1. git push 远程仓库别名 分支名称

毫无疑问,这种推送方式直接报错了!(图示)

那就强制推送吧,运行下面的命令看看效果:

1. git push -f 远程仓库别名 分支名称

强制推送成功了! (图示)

我们再看看远程仓库的内容,图示可以看出,远程仓库的 mileStone 分支下,原本存在的 25 个提交记录全部被删除了!

总结:git push -f 这个命令形式在实际开发中是被严格限制使用的!我们这篇经验只是用于演示其“彪悍”的能力!

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/article/91151.html
热门文章