更改多个提交消息
在本节中,如果我们想更改历史记录中的多个提交消息,我们将展示要遵循的步骤。
假设我们要从 HEAD 开始获取 10 条最新的提交消息。
以交互模式运行 Git Rebase
首先,我们应该在交互模式下运行 git rebase:
git rebase -i HEAD~10
输入“改写”
在第一步之后,编辑器窗口将显示 10 个最近的提交。
它会让你为每个提交输入命令。
我们需要做的就是在每次要更改并保存文件的提交开始时键入“reword”。
保存后,将为每个选定的提交打开一个窗口,用于更改提交消息。
输入新的提交消息
在第二步之后,将为每个提交打开一个编辑器。
键入新的提交消息并保存文件。
查看强制将本地更改推送到远程以获取有关如何强制推送更改的更多详细信息。
更改最近的提交消息
我们可以在 git commit 命令中使用 --amend 标志再次提交以更改最新提交:
git commit --amend -m "New commit message"
运行它不仅会覆盖我们最近的提交消息,还会覆盖提交的哈希值。
请注意,它不会更改提交的日期。
它还允许我们使用 git add 命令添加我们忘记进行的其他更改:
git add more/changed/w3docs.txt git commit --amend -m "message"
-m 选项允许在不打开编辑器的情况下编写新消息。
如果你想改变已经推送到服务器的提交的消息,你应该使用带有 --force 标志的 git push 命令强制推送它,否则你的推送将被拒绝。
查看强制将本地更改推送到远程以获取有关如何强制推送更改的更多详细信息。
git add 和 git commit 命令
git add 命令用于将工作目录中的更改添加到暂存区。
它指示 Git 在下一次提交时向某个文件添加更新。
但是为了记录更改,还应该运行 git commit 命令。
git add 和 git commit 命令是 Git 工作流的基础,用于将项目版本记录到存储库的历史记录中。
结合这两个命令,还需要 git status 命令来检查工作目录和暂存区的状态。
许多程序员低估了提交消息的作用,而它对于管理工作非常重要。
它可以帮助处理我们项目的其他开发人员了解我们所做的更改。
因此,它必须尽可能具体、结构良好和清晰。
在这个片段中,我们将展示如何更改最近的提交消息,以及如何更改历史记录中任意数量的提交消息。
强制将本地更改推送到远程
不建议更改已经推送的提交,因为这可能会给在该存储库上工作的人带来问题。
如果你改变了推送提交的消息,你应该使用带有 --force 标志的 git push 命令强制推送它(假设远程的名称是 oroirn,这是默认的):
git commit --amend -m "New commit message." git push --force oroirn HEAD
--force 在本地分支的基础上覆盖远程分支。
它会破坏其他开发人员所做的所有推送更改。
它指的是我们在本地分支中没有的更改。
这是修改最后一次提交的另一种更安全的方法:
git push --force-with-lease oroirn HEAD
--force-with-lease 被认为是一个更安全的选项,它不会覆盖在远程分支上完成的工作,以防更多的提交添加到它上面(例如,由另一个开发人员)。
此外,它还可以避免通过强制推送覆盖其他开发人员的工作。
git push 命令
git push 命令用于将本地仓库的内容上传到远程仓库。
在本地存储库中进行更改后,我们可以推送以与团队其他成员共享修改。
如果中央存储库的历史记录与本地存储库的历史记录不匹配,Git 将拒绝推送请求。
在这种情况下,我们应该拉取远程分支并将其合并到本地存储库中,然后再次推送。
--force 标志与远程存储库的分支和本地存储库的分支相匹配,从最后一次拉取中清除上游更改。
当共享提交不正确并使用 git commit --amend 或者交互式 rebase 修复时使用强制推送。
交互式 rebase 也是一种在共享之前清理提交的安全方式。
git commit --amend 选项更新之前的提交。