Git branch

Git-Icon-1788C

Witaj ostatnio ruszyliśmy z gitem, dzisiaj popracujemy troche na gałęziach. Do czego mogą posłużyć nam branche??                   

 
 
 
 
 

Branch

 

Odpowiadając na wyżej postawione pytanie – aby logicznie podzielic sobie pracę nad naszym projektem. Przykladowo tworzysz sobie nowe repoozytorium i masz jedna gałąź na której pracujesz, każdy ma:) nazywa się ona master traktujemy ją zazwyaczaj jako główną wersję naszego projektu, gdzie zawsze chcemy mieć ostateczną wersję naszej aplikacji. Przypuśćmy, że musimy dodać jakąś nową funkcjonalność do naszego projektu wtedy tworzymy sobie nową gałąź na której pracujemy nad tym nowym ulepszeniem tak długo aż jesteśmy zadowoleni z rezultatów i możemy wrzucić zmiany do naszej głównej wersji. Wtedy scalamy naszą poboczną gałąź z masterem. I tak wiemy, że nie wrzucamy na mastera byle czego:) spróbujmy coś takiego zrobić. Zróbmy sobie nowy projekt w Intellij i zainicjalizujmy nowe repozytorium tak jak w poprzednim wpisie. Załóżmy że chcemy dodać do naszego projektu metodę która będzie parsować jakiś tekst – aby wyłapywać słowa po jakichś przykładowych separatorach. Sprawdźmy jakie aktualnie mamy branche.

 

git branch

 

Aby dodać nowy branch.

 

git branch nazwaBrancha

 

Przypuścmy, że pomylilismy sie w nazwie i chcemy ją zmienic.

 

git branch -m staraNazwa nowaNazwa

 

Aby usunąć gałąź.

 

git branch -d nazwaBrancha

 

Ok mamy już utworzony nowy branch zacznijmy na nim pracować.

 

git checkut nazwaBrancha

 

Jeżeli praujesz na Intelij zauważ że w tym momencie automatycznie w IDE też zmieniłeś branch na którym pracujesz.

 

Selection_033

 

Możesz też zauważyć, że jeżeli znów sprawdzisz branche na zielone podswietlony aktualnyk, a więc napiszmy metodę do parsowania Stringa – najpierw napiszmy test jednostkowy który sprawdzi efekt naszej pracy TDD:) i commit.

 

public class ParseExampleTest {

    private ParseExample parseExample;
    private List<String> separators;
    private String valueToParse;

    @Before
    public void setUp(){

        parseExample = new ParseExample();

        separators = Arrays.asList("-", ",", "*", ":");
        valueToParse = "11-22,33*44:55*66";
    }

    @Test
    public void parseStringWithSeparatorsTest(){

        List<String> result = parseExample.parseStringBySeparators(separators, valueToParse);
        assertThat(result, CoreMatchers.hasItems("11","22","33","44","55","66"));
    }

}

 

Ok, gdy puścimy nasz test w tej chiwli oczywiście zakończy się niepowodzeniem. Dodajmy metodę która spełni warunki określone w teście i commit.

 

public class ParseExample {


    public List<String> parseStringBySeparators(List<String> separators, String valueToParse){

        String pattern = "[" + String.join(" ", separators) + "]";
        String[] words = valueToParse.split(pattern);

        return Arrays.asList(words);
    }
}

 

Możesz teraz znowu sprawdzić branch master nic się na tam nie zmieniło. Jesteśmy już pewni, że możemy dodać nasze zmiany do głównej wersji naszej aplikacji a więc mergujemy:) Musimy przełączyć się na branch który chcemy aktualizować i w poleceniu podać nazwę gałęzi z której chcemy przenieść zmiany.

 

git merge nazwaBrancha

 

Może się oczywiście zdarzyć tak, że będziemy chcieli cofnąć nasze zmiany w takiej sytuacji możemy sprawdzić historię naszych logów.

 

git reflog

 

Znajdujemy ostatni commit przed mergowaniem i wykonujemy komendę:

 

git reset --hard HEAD@{numerCommita}

 

Zrobiliśmy sobie podstawowe operacje na gałęziach i przeprowadziliśmy pierwsze mergowanie:) oczywiście są to podstawowe operacje mogą np wystąpić konflikty przy tej operacji, lecz taki problem przeanalizujemy sobie w innym poście.

Have Fun:)

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *