忽略 Git 提交 [重复]
Posted
技术标签:
【中文标题】忽略 Git 提交 [重复]【英文标题】:Ignore Git Commit [duplicate] 【发布时间】:2017-11-18 21:51:50 【问题描述】:我正在为当前项目开发 Git repo,在我的项目中有一些 abc.php 文件。
我的分支是develop
目前我的本地和远程分支代码是一样的,现在我做了一些 abc.php 中的更改。需要移动(远程分支)。
所以我做了以下方式。
git add -A
--> 添加文件
git commit -m "changes done in abc.php"
--> 文件已提交
那么我必须使用git push origin develop
--> 将我的更改推送到远程分支
但现在我意识到,我不想要我的最新提交.. 是否可以忽略我的最新提交?请帮我解决一下
提前致谢!..
【问题讨论】:
【参考方案1】:如果你已经提交了垃圾但没有推送,
git reset --soft HEAD~1
HEAD~1
是 head 之前提交的简写。或者,您可以参考要重置到的哈希的SHA-1
。 --soft 选项将删除提交,但它会将所有更改的文件保留为“要提交的更改”,就像 git status 所说的那样。
如果您想摆脱自 head 之前的提交以来对工作树中跟踪文件的任何更改,请改用 --hard。 现在,如果你已经推了有人拉了,这通常是我的情况,你不能使用 git reset。但是,您可以执行 git revert,
git revert HEAD
这将创建一个新的提交,它会反转由意外提交引入的所有内容。
【讨论】:
【参考方案2】:试试:
git reset HEAD~1
git push -f
【讨论】:
【参考方案3】:取消提交就是应用其差异的倒数!
我们可以重定向提交的差异以取消到命令patch --reverse
git diff HEAD^ | patch --reverse
为了更简单,还有 git revert
例如,取消最后三个提交:
git revert HEAD~3..HEAD
或者取消一个特定的提交: :
git revert 444b1cff
然后你可以干净地推送在服务器上获得的提交。任何以取消提交为基础工作的协作者都必须在正确的时间管理冲突..
【讨论】:
以上是关于忽略 Git 提交 [重复]的主要内容,如果未能解决你的问题,请参考以下文章