Руководство по Git. Подтверждение изменений.

В данной статье мы более подробно рассмотрим процесс подтверждения изменений в Git.
Предположим, что мы хотим добавить новый класс Team, который имеет следующий вид:

Team.java


package net.proselyte.gittutorial;

import java.util.List;

/**
 * Simple JavaBean domain object that represents a Team of {@link Developer}s.
 *
 * @author Eugene Suleimanov
 * @version 1.0
 */

public class Team {
    private String teamName;
    private List developers;

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public List getDevelopers() {
        return developers;
    }

    public void setDevelopers(List developers) {
        this.developers = developers;
    }

    public void addDeveloperToTeam(Developer developer) {
        this.developers.add(developer);
    }

    public void removeDeveloperFromTeam(Developer developer) {
        this.developers.remove(developer);
    }

    public void shotTeam() {
        System.out.println(developers);
    }

    @Override
    public String toString() {
        return "Team{" +
                "teamName='" + teamName + '\'' +
                ", developers=" + developers +
                '}';
    }
}


Добавим данный файл в Git и подтвердим изменения:


git add src/net/proselyte/gittutorial/Team.java


 git commit -m "Adding some class to project"

[master 424e9e1] Adding some class to project
 1 file changed, 51 insertions(+)
 create mode 100644 src/net/proselyte/gittutorial/Team.java

Теперь посмотрим историю коммитов:


git log 

commit 424e9e151e84805a2637afe4deb729d14c2c1c28
Author: Eugene Suleimanov 
Date:   Wed Aug 17 19:46:55 2016 +0300

    Adding some class to project

commit 11f75b7bc8884203624ba1d552438d57a7c3559d
Author: Eugene Suleimanov 
Date:   Wed Aug 17 19:15:53 2016 +0300

    Adding .gitignore file.

commit 5e0298b007582bec3a8f4f68db74ba4ddfa40838
Author: Eugene Suleimanov 
Date:   Wed Aug 17 19:15:21 2016 +0300

    Adding .gitignore file

commit 97d5de493ac15f821b109b7b0375d4f94e1f2dd1
Author: Eugene Suleimanov 
Date:   Wed Aug 17 19:10:41 2016 +0300

    Adding classes Developer.java and Project.java

commit a0f051aa654aa43db508f460b5bd28e8a41fe2ae
Author: Eugene Suleimanov 
Date:   Wed Aug 17 17:43:12 2016 +0300

    Initial commit of the project.

commit 0853db5f06305eae525b954f587ecc49c62debd9
Author: Eugene Suleimanov 
Date:   Wed Aug 17 17:41:35 2016 +0300

    Initial commit of the project

commit 5e8179a97b971f8fd11118e64f4d624b5ddf3ea6
Author: Eugene Suleimanov 
Date:   Wed Aug 17 17:20:53 2016 +0300

    Initial commit of the project

commit 3c199cf96dba9131bb3df299aa819b9cbef6a870
Author: Eugene Suleimanov 
Date:   Wed Aug 17 17:20:27 2016 +0300

    Initial commit of the project

Несколько поразмыслив, мы решили изменить комментарий и указать более подробно характер изменений, а именно – указать, что был добавлен класс Team, который содержит коллекцию разработчиков. Для этого нам необходимо использовать следующую команду:


 git commit --amend -m "Adding class Team that contains collection of Developers"

[master c0b6471] Adding class Team that contains collection of Developers
 Date: Wed Aug 17 19:46:55 2016 +0300
 1 file changed, 51 insertions(+)
 create mode 100644 src/net/proselyte/gittutorial/Team.java

Теперь снова просмотрим историю коммитов:


git log 

commit c0b64715ee2ca606921e7a14a325d3a9c8aa3db7
Author: Eugene Suleimanov 
Date:   Wed Aug 17 19:46:55 2016 +0300

    Adding class Team that contains collection of Developers

commit 11f75b7bc8884203624ba1d552438d57a7c3559d
Author: Eugene Suleimanov 
Date:   Wed Aug 17 19:15:53 2016 +0300

    Adding .gitignore file.

Как мы видим, комментарий крайнего коммита изменился на необходимый.

На этом мы заканчиваем подробное изучение подтверждения изменений.
В следующей статье мы рассмотрим процесс записи изменений из локального репозитория на удалённый (операция push).