忽略 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 提交 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

忽略或跳过 Git 上的某些提交 [重复]

忽略已提交到 Git 存储库的文件 [重复]

忽略已经提交到Git存储库的文件[重复]

让 git 忽略重命名 [重复]

如何告诉 git 忽略个别行,即特定代码行的 gitignore [重复]

Git:将单个文件还原为其最后一次提交[重复]