Git 提交反转概述
在软件开发中,使用 Git 管理版本控制至关重要。有时,开发人员会在切换分支以执行演示或测试其他功能等任务之前进行临时提交以保存工作状态。这种做法可以保持工作流程的灵活性,但可能会导致不应成为永久性的临时更改。
这就需要一种能够在不丢失已完成工作的情况下恢复提交的技术。如果您暂时提交了更改并需要在不影响项目进度的情况下返回,那么了解如何在保留修改的同时撤消这些提交至关重要。
命令 | 描述 |
---|---|
git reset --soft HEAD^ | 撤消当前分支中的最后一次提交,但更改仍处于暂存状态(即准备好重新提交)。 |
git reset HEAD~1 | 将当前分支向后移动一次提交,有效地删除最后一次提交,但将更改保留在工作目录中。 |
git add . | 将当前目录中所有更改的文件添加到暂存区域,为提交做好准备。 |
git commit -m "Your message here" | 使用所有当前暂存的更改创建一个新提交,并包含用户提供的提交消息。 |
git push origin development-branch | 将提交从本地“开发分支”推送到相应的远程分支。 |
git push origin development-branch -f | 强制将提交推送到远程分支,可能会覆盖远程存储库中的更改。谨慎使用。 |
Git 还原脚本说明
前面提供的脚本旨在管理和反转 Git 存储库中的更改,而不会丢失对代码库所做的修改。这 命令至关重要,因为它撤消当前分支上的最新提交,同时将所有更改保持在暂存状态。当过早提交或只是作为临时占位符时,这特别有用。在保留文件修改的同时恢复提交的能力允许开发人员根据需要重新评估并重新提交更改。
重置后,命令如下 和 用于使用更合适的提交消息重新暂存并提交更改。这一系列操作确保临时提交不会干扰分支的历史记录,同时保持已完成工作的完整性。此外, 用于使用新提交更新远程存储库,如果强制推送则替换临时存储库 git push -f 根据项目的协作规范认为有必要。
恢复临时 Git 提交而不丢失数据
使用 Git 命令行界面
git checkout development-branch
git reset --soft HEAD^
# Now the changes are staged but the last commit is undone.
git status
# Shows staged changes. You can now modify if necessary, or commit again.
git add .
git commit -m "New commit after undoing temporary commit"
git log
# Confirm the new commit history.
git push origin development-branch
在 Git 中处理临时提交以保留代码更改
应用 Git 命令进行灵活的版本控制
git checkout development-branch
git reset HEAD~1
# This command undoes the last commit and leaves the changes in your working directory.
git status
# You can see the changes are not staged for commit.
git add .
git commit -m "Recommitting the preserved changes"
git log
# Check to make sure the history is as expected.
git push origin development-branch -f
用于临时更改的高级 Git 技术
为了扩展 Git 有效处理临时更改的能力,理解“存储”的概念非常重要。 Git stash 是一个功能强大的工具,可以临时保存未提交的更改,而无需将它们提交到版本历史记录中。当开发人员需要在分支之间快速切换上下文而不提交半成品时,此功能非常有用。隐藏可以保留分阶段和未分阶段的更改,并且可以在以后恢复,这非常适合处理开发过程中意外的焦点转移。
另一个重要方面是理解用力推动的含义 。此命令可以覆盖远程存储库中的历史记录,这在需要纠正错误提交或临时提交时非常有用。但是,应谨慎使用它,因为如果沟通不当,可能会导致其他团队成员丢失提交。了解这些先进技术使开发人员能够在协作环境中维护干净高效的项目历史记录。
- 目的是什么 ?
- 此命令用于撤消当前分支中的最后一次提交,但它会保留更改。
- 如何保存不想立即提交的更改?
- 您可以使用 暂时存储您未提交的更改。
- 是否可以恢复隐藏的更改?
- 是的,通过使用 您可以重新应用之前隐藏的更改并将其从隐藏列表中删除。
- 使用有什么风险 ?
- 强制推送可能会覆盖远程存储库中的更改,如果不小心使用,可能会导致其他人丢失工作。
- 我可以撤消 git 存储吗?
- 可以通过重新存储更改或简单地不应用存储来执行撤消存储。
有效管理 Git 中的临时提交使开发人员能够维护干净的项目历史记录,并确保所有更改都得到考虑,即使优先级发生变化也是如此。通过利用 git reset、git stash 和 git push 等命令,开发人员可以在各种开发场景中进行操作,而不会丢失重要的更改。这些工具对于任何希望增强版本控制实践并确保其项目能够适应不断变化的开发需求的开发人员来说都是必不可少的。