Git sourceTree 2

양진영·2023년 1월 25일
0

Git

목록 보기
3/5

이전 소스트리1에서는 CLI튜토리얼에서 다루었던 기본적인 내용인 add, commit, push에 대해 소스트리로는 어떻게 할수있는지 알아보았다. 그렇다면 이제 조금 더 나아가 하나의 브랜치를 사용하는것이 아닌 여러개의 브랜치를 사용해보고 또 병합하는 과정과 충돌이 났을때 해결할수있는법에 대해 다뤄 보겠다.

브랜치

브랜치를 사용하는 가장 큰 목적은 충돌을 피하기 위해서 일것이다. 조금 더 정확하게 말하자면 브랜치를 사용하는게 아니라 사용자들이 병렬적으로 업무할수있는 각자의 브랜치를 사용하는 목적은 서로간의 충돌을 피하기 위해서 라고 말하는게 정확할것 같다.

그렇다면 브랜치는 어떻게 만들수 있을까? 기본적인 cli 명령어로는 git branch <브랜치명>으로 브랜치를 만들수 있을것이다. 이후 git checkout <이동하고자 하는 브랜치명>으로 해당 브랜치로 이동할수 있을것이다. 소스트리에서는 그냥 브랜치 눌러서 새로운 브랜치명을 정한다음 생성하면 된다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>git practice main</h1>
    <div>고수의길</div>
    <div>변경된 내용</div>
</body>
</html>

h1태그에서 main이라는 텍스트를 추가하고 저장했더니 히스토리에는 uncomitted change가 맨 상단에 보이게 됫고 파일상태에서는 스테이지에 올리지않은 파일에 작업해두었던 파일이 생성되었다.

이후 커밋 메시지를 남기고 바뀐 내용 즉시 푸시에 체크해주면 바로 푸시가 된다.

커밋을 하고난 뒤 히스토리를 확인해보면 master는 최신을 가르키지 않지만 origin/feat/main-page는 제대로 최신 커밋을 가르키고 있는것이 확인된다.

다른 사용자가 풀받아서 사용했다고 가정했을때 내가 작업한 feat/main-page를 가져오는것이 아닌 master에서 가져와 작업후 똑같이 커밋 푸시를 하였다. 그랬더니 보이는것은 내가 나눈 분기인 origin/feat/main-page와 다른 사용자가 남긴 feat/comment두개이다. 근데 브랜치에서 보면 feat폴더안에 comment하나 밖에 안보인다. 왜일까? 왜냐면 다른 사용자는 master를 pull받아왔지만 feat/main-page는 자신의 로컬저장소로 pull받아오지 않았기 때문이다.

이제 feat/comment와 feat/main-page로 나누어서 작업했던 브랜치들을 한곳으로 모아주는 merge를 해야하는데 음... 걍 다음 포스팅에서 하겠다. 읽어주셔서 감삼다

profile
왜? 라는 질문을 중요시하는 서버 개발자입니다

0개의 댓글