# 16.修改提交内容

## 修改文件，并提交版本库

在 test 文件中添加一行 123，并保存。使用 `git commit -a -m "Added 123 to the test.txt"` 命令提交至版本库。

```bash
# 查看文件内容
$ cat .\test.txt
abc
123

# 提交到版本库
$ git commit -a -m "Added 123 to the test.txt"
[master ed5fe0d] Added 123
 1 file changed, 2 insertions(+), 1 deletion(-)
 
# 查看提交日志
$ git hist
* fc49e5f 2023-05-05 | Added 123 to the test.txt (HEAD -> master) [aku]
* d7f681f 2023-05-05 | Added abc to the test.txt (tag: v1) [aku]
* 01b8702 2023-05-05 | Add first file (tag: v1-beta) [aku]
```

## 再次修改文件，并覆盖上一次提交的内容

```bash
# 查看文件内容
$ cat .\test.txt
abc
123456

# 提交到版本库
$ git commit -a -m "Added 123456 to the test.txt" --amend
[master 929f644] Added 123456 to the test.txt
 Date: Fri May 5 19:25:32 2023 -0700
 1 file changed, 2 insertions(+), 1 deletion(-)
 
# 查看提交日志
$  git hist
* 929f644 2023-05-05 | Added 123456 to the test.txt (HEAD -> master) [aku]
* d7f681f 2023-05-05 | Added abc to the test.txt (tag: v1) [aku]
* 01b8702 2023-05-05 | Add first file (tag: v1-beta) [aku]
```

## 解释

`--amend` 是一个 Git 命令选项，用于修改最新的提交（或当前分支上的指定提交）而无需创建新的提交记录。它可以用于更改引导提交或添加/删除文件等操作。

该选项主要用于以下两个情况：

1. 修改最新的提交：如果您忘记将某个文件提交到最新的提交中，或者需要修改提交消息，则可以使用 `git commit --amend` 命令来修改最新的提交。这将会打开编辑器并允许您修改提交消息和暂存区中的文件版本。完成修改后，Git 将更新最新的提交记录而无需创建新的提交记录。
2. 添加/删除文件：如果您想将文件添加到最新的提交中，或者从最新的提交中删除文件，则也可以使用 `git commit --amend` 命令完成此操作。首先，使用 `git add` 命令将更改的文件添加到暂存区中。接下来，运行 `git commit --amend` 命令，并使用 `--no-edit` 选项以保留现有的提交消息不变。Git 将会使用暂存区中的文件替换最新的提交记录，而无需创建新的提交记录。

请注意，在使用 `--amend` 选项时，请确保仅更改了最新的提交并且没有共享该提交，否则可能会破坏团队成员的工作进程。如果您已经共享了提交，则应使用 `git revert` 命令来逆转该提交，而不是修改它。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://alanmpan.gitbook.io/git-learning/git/16.-xiu-gai-ti-jiao-nei-rong.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
