# Git Commit

Git Commit allows you to create snapshots of different stages of project’s progress and save the changes. This makes it one of the most important commands when working on a project.

## What is Git Commit?

The [Git command](https://www.ionos.ca/digitalguide/websites/web-development/git-commands/ "Git Commands") Git Commit is one of the most important and most used commands in projects. Teams **use this command to create a snapshot of the project’s current state** once changes have been made, tested it out and approved. Git considers this snapshot to be a secure version, and will only make changes to it if specifically asked to do so. Git Commit will also take the snapshot if you are working with a local repository. This will not affect other repositories. These can be accessed through [Git Push](https://www.ionos.ca/digitalguide/websites/web-development/git-push/ "Git Push") and [Git Pull](https://www.ionos.ca/digitalguide/websites/web-development/git-pull/ "Git Pull").

The [difference between Git and SVN](https://www.ionos.ca/digitalguide/websites/web-development/svn-vs-git-comparing-version-control-systems/ "SVN vs Git – comparing version control systems") is worth mentioning here. Git’s decentralized approach allows developers to work on the same project at the same time. Each team member can record their development status in the local repository using Git Commit. You can save changes in the moment, and it also allows you to **revert to another version at a later point**. This significantly increases security and protection against errors. Performing Git Commits at regular intervals and after major changes is advised.

## How does the Git Commit syntax work?

Working in an isolated environment leads to finding the best solution to a problem without changing the central repository. You should only apply these changes to the whole project after you’ve thoroughly tested them. Git Commit **preserves all individual saves for this purpose**. This gives you to option to revert to older snapshots. The syntax of Git Commit is basically the same, but you can add arguments to it. Use the following standard command to carry out a Git Commit in the staging area. Use the text editor to insert a message and save the snapshot.

```none
git commit
```

## What are the other Git Commit options?

You can customize the snapshot in advance to optimize your workflow by adding an argument to Git Commit.

### How do I save changes in the working directory?

The -a argument creates a snapshot of all changes in the working directory. This takes into account all the files which were added to the local repository using Git Add in the past. This is what the command looks like:

```none
git commit -a
```

### How do I insert message?

You can use the -m option to avoid going through the text editor. Creating a snapshot with Git Commit prompts you to include an explanatory message. You can do this step directly with -m.

```none
git commit -m "here is your statement".
```

### How do I combine both options?

A combination of both options is also possible for main users. All changes in the working directory are taken into account and an explanation is sent directly.

```none
git commit -am "Here's your statement"
```

### How do I modify Git Commits?

Use this option to change your last Git Commit. New changes can be added to the most recent snapshot. You can make the changes using the text editor.

```none
git commit --amend
```

## What is an example of a Git Commit?

We’ll show you what Git Commit looks like in practice. In our example, we’ve been working on a file and want to commit the changes. We have to move it to the staging area using the Git Add command:

```none
git add example.py
```

We can then use the Git Status command to check if the file has been added to the staging area:

```none
git status
On branch main
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)</file>
new file: example.py
```

You can carry out Git Commit if the status is correct:

```none
git commit
```

Your text editor will then open. Although you can formulate the explanation as you wish, it is common to start with a summary of around 50 characters, then insert an empty line and give a detailed explanation of the individual changes. This ensures that all team members can quickly understand your changes. Lines beginning with a hash (#) are ignored in the explanation. The Git Commit will not be performed if the explanation is completely empty.

## How do I delete Git Commits?

It is possible to delete a Git Commit. However, it is **only recommended in absolutely exceptional cases**. Deleting a commit can cause major problems, especially if you are working in a team. For example, your starting points will no longer be identical if you delete a Git Commit in your local repository while your team members continue to work with the old version. This can lead to merge errors. You can use the Git Revert command to undo changes without changing your repository’s history. Use the Git Reset command to permanently delete a Git Commit. You can find this command and many others in our Git cheat sheet with a PDF download.

---

### Tip

Get your project online in just three steps! You can easily perform Git Push, Build and Deploy with [Deploy Now](https://www.ionos.ca/hosting/deploy-now "Deploy Now by IONOS: Build and Deploy via GitHub") by IONOS. Take advantage of the many useful features, fast setup and maximum scalability.

---


This is a markdown version of: [https://www.ionos.ca/digitalguide/websites/web-development/git-commit/](https://www.ionos.ca/digitalguide/websites/web-development/git-commit/) for AI/LLM consumption.