지옥에서 온 Git

branch 만들기

수업소개

branch를 만드는 방법에 대해서 알아봅니다. 

수업

 수업에서 사용한 명령어

브랜치의 목록을 볼 때

git branch

브랜치를 생성할 때 

git branch "새로운 브랜치 이름"

브랜치를 삭제할 때

git branch -d

병합하지 않은 브랜치를 강제 삭제할 때 

git branch -D

브랜치를 전환(체크아웃)할 때

git checkout "전환하려는 브랜치 이름"

브랜치를 생성하고 전환까지 할 때 

git checkout -b "생성하고 전환할 브랜치 이름"

댓글

댓글 본문
작성자
비밀번호
  1. 오빠는다르다
    감사합니다-!!!
  2. 고스트프리
    감사합니다.
  3. 김수현
    git init > 현 디렉토리에 저장소가 만들어짐(.git디렉토리)
    f1.txt라는 파일을 또 만들어서 a라고 쓰고 나오겠음(vim f1.txt > i > a > esc > :wq)
    git add f1.txt (버젼관리 시작)
    git commit -m "1"
    한번더 수정하자 (담줄에 b)
    git add 사용 안하고 > git commit -am "2"
    -a를 쓸경우 조심할 것 : 한번도 에드를 하지 않은 파일은 이렇게 하면 안됨, add명령으로 한번 해줘야 > 자동으로 add할 수 있음

    이렇게 계속 버젼관리를 할 수 있는데 어떤 문제가 생길 수 있냐하면
    작업하고 있었던 소스는 그대로 두면서도 고객사에게 제공하는
    특별한 기능 커스텀된 기능이 추가되는 경우 > 원래 소스를 더럽히지 않으면서 (원래소스 변경없이)
    고객을 위한 커스마이징된 코드를 개발할 수 있음(이런 경우 브렌치가 딱 맞는 경우)
    또다른 경우 - 누군가 개발해 달라고 했는데 > 폼을 보니 > 필요 없는데 개발해 달라고 하는 느낌이 듬(쉽게 버릴 수 있는 방법-분기)
    또는 어떤 경우 - 서버에 반영하면서 > 문제점이 없는지 체크를 해야 하는 경우 > 메인을 위한 작업/테스트를 위한 작업 > 분기
    여러 경우가 있음

    브랜치를 만들어보자
    git branch
    master라 나옴 + 앞에 *이 나옴 (무슨 뜻?)
    현제 master라는 브렌치를 쓰고 있다라는 뜻
    git을 사용하는 순간부터 master를 기본 브랜치로 사용하게 되어 있음 > 약속 같은 특별한 이름의 브랜치임
    새로운 브랜치를 만들어보자 (git branch 하고 exp_실험한다는 의미에서 많이 사용함, 또는 feature(특정한 기능을 추가할 경우)
    아무튼 앞에 접두사를 사용 조직/개인이 결정할 문제 > 아무튼 exp라는 브렌치를 만들고 사용하는 것을 보일 것임
    git branch exp
    git branch
    브렌치들이 나옴 *가 현제의 브렌치임
    그러면 exp브렌치로 들어가려면?
    git checkout exp (숙박같은 것을 할 경우 checkout이라고 함)
    git branch를 해보면 *exp로 변경되어 있음
    ls -al > f1.txt가 보임
    git log > 1과 2가 나옴
    이것은 master브렌치와 exp브렌치는 같은 상태라는 것
    브렌치는 현상태의 브렌치를 그대로 복사한다라고 생각하면 됨
    그럼 여기서
    f1.txt(담c)변경 > 커밋 3으로 변경(git commit -am "3")
    아니 git add f1.txt > git commit -m "3"
    git log > 현제 1,2,3을 가지게 됨
    git checkout master
    git log > 1,2만 있고, 파일내용도 다름
    git checkout exp
    git log > 1,2,3 > cat f1.txt > abc
    f1.txt가 어느 브렌치냐에 따라 파일내용이 다름

    똑 같은 것인데 실습삼아 다시해보자
    ls -al
    왼쪽은 터미널 / 오른쪽은 현디렉토리의 파일을 보여주는 화면(8:40)
    vim f2.txt파일 추가 > a라고 하고 저장 > git add f2.txt
    git log > 4번할 차례임 > git comm -m "4"
    git checkout master > 여기 있는 2개의 파일은 어떻게 될까?
    보면 f2.txt가 감쪽같이 사라짐
    그리고 다시 git checkout exp로 하면 다시 나타남
    정말 좋은 기능임 + 아주 가볍고
    저장소를 추가적으로 거의 쓰지 않음
    그래서 브랜치는 훌륭한 기능 > 댓가는 공부를 해서 익혀야 하는 것
    진도 나가기 전에 혼자서 브랜치를 여러개 만들어 보자
    checkout도 하고 파일도 수정하고 브랜치를 손에 익게 하고 그다음 내용 보자
  4. Yoo Moon Il
    groundtree님의 코드에 약간 설명 붙였습니다. (코드 정리해 주신것 잘 쓰고 있습니다)

    * 새로 gitfth만들어서 init하고 만듬
    * f1.txt 생성후 2번 commit 하기 :
    vim f1.txt
    git add f1.txt :처음에는 무조건 add해야함 (-a 사용하면 안됨)
    git commit -m "1" : commit 내용 자동 작성
    git log
    vim f1.txt :수정
    git commit -am "2" :두번째 부터는 -a사용할수 있음 (add의 효과)
    git log

    * branch 생성
    git branch exp :브랜치 생성
    git branch : 브랜치 확인
    git checkout exp : 브랜치 옮김
    git branch :확인.. 옮겨도 앞의 마스터 브랜치와 동일한 화일이 생성되어 있음믈 확인 할수 있음

    *** 각각의 branch에서 수정 생성된 사항은 다른 branch에는 영향을 주지 않는다는 실습 **********

    * exp 브랜치에서 f1.txt 수정
    vim f1.txt : abc 입력 ( 그이전까지는 ab였음)
    git add f1.txt
    git commit -m "3"
    git log

    * master 브랜치로 변경하여 log 확인
    git checkout master
    git log
    cat f1.txt : : ab만 출력(exp에서 커밋한것 반영 안됨)

    * exp 브랜치로 이동하여 파일 내용과 커밋버젼 비교
    git checkout exp
    git log
    cat f1.txt : abc 출력

    * exp 브랜치에서 f2.txt 추가
    vim f2.txt :a입력
    git add f2.txt
    git commit -m "4"

    * 브랜치를 전환하여 파일 변경사항 비교
    git checkout master : master branch에서는 f2.txt가 없음. 즉, 각 브랜치마다 변경사항이 각각 저장됨
    git checkout exp
  5. groundntree
    * f1.txt 생성후 2번 commit 하기
    vim f1.txt
    git add f1.txt
    git commit -m "1"
    git log
    vim f1.txt
    git commit -am "2"
    git log

    * branch 생성
    git branch exp
    git branch
    git checkout exp
    git branch

    * exp 브랜치에서 f1.txt 수정
    vim f1.txt
    git add f1.txt
    git commit -m "3"
    git log

    * master 브랜치로 변경하여 log 확인
    git checkout master
    git log
    cat f1.txt

    * exp 브랜치로 이동하여 파일 내용과 커밋버젼 비교
    git checkout exp
    git log
    cat f1.txt

    * exp 브랜치에서 f2.txt 추가
    vim f2.txt
    git add f2.txt
    git commit -m "4"

    * 브랜치를 전환하여 파일 변경사항 비교
    git checkout master
    git checkout exp
  6. 성동현
    add이후 commit안하고 branch를 바꾸면 파일이 전에서 후의 branch로 옮겨가네요.
    궁금해서 해봤습니다.
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기