Github에서 소스 코드 관리 [병합]

우선 소개



만약 마음에 들어주거나 도움이 되면 꼭 "좋아요!"기다리고 있습니다!
게시물 동기 부여로 연결됩니다^^\



마지막 기사



Github에서 소스 코드 관리 [초급편]
htps : // 이 m / t / ms / 22d64f6187d68 아 22890

이 기사의 목적



전회는 Github 기본적인 사용법(초기 설정 ~ add, commit, push)을 썼습니다.
이번에는, 브랜치의 사용법에 대해서, 써 갑니다.

⚠⚠⚠⚠ 자신의 이해를 위해서도 아웃풋으로서 Github의 사용법을 투고하고 있습니다. ⚠⚠⚠⚠
⚠⚠⚠⚠ 나 자신도 초보자이므로 정보가 부정확할 가능성이 있으므로 양해 바랍니다 ⚠⚠⚠⚠

Github의 브랜치란?



브랜치(branch)란 하나의 프로젝트에서 브랜치를 분기함으로써,
동일한 리포지토리에서 여러 변경을 동시에 진행할 수 있는 기능입니다.

분기된 브랜치는 다른 브랜치와 합류(merge)시킴으로써, 1개의 브랜치로 정리할 수 있습니다.
합류시키는 브랜치는 명시적으로, "master"명명하는 것이 많은 것 같습니다.
  • 응용 프로그램 개발에 Github 리포지토리 준비
  • 브랜치를 3개 썬다
  • master 브랜치
  • A씨 전용 브랜치
  • B 씨 전용 브랜치

  • 각각의 브랜치로 개발한 내용을 master 브랜치에 merge
  • master 브랜치는 A씨 B씨 각각이 개발한 파일이나 코드가 들어간다



  • 로컬 브랜치로 병합한 내용을 리모트 리포지토리의 브랜치에 반영시키는 것도 가능합니다.



    토끼에도 뿔에도 사용해 본다



    ↓↓골 이미지


    개발 전용 브랜치의 내용을 master 브랜치에 반영



    dev01에서 작성한 샘플 파일(aaa.txt)을 master 브랜치에도 반영시키는 방법입니다.

    브랜치를 dev01로 전환



    git checkout '브랜치 이름'으로 브랜치를 전환할 수 있습니다.
    $ git checkout dev01
    Switched to branch 'dev01'
    Your branch is up to date with 'origin/dev01'.
    

    자신이 어디에 있는지 확인



    git status에서 확인이 가능합니다.
    $ git status
    On branch dev01
    Your branch is up to date with 'origin/dev01'.
    
    nothing to commit, working tree clean
    

    nothing to commit, working tree clean

    git의 상냥한 곳입니다만, 브랜치를 바꿀 때마다, commit 끝난 파일이 있는지 어떤지를 알려 줍니다. 웃음

    dev01 브랜치로 aaa.txt 파일 만들기



    aaa.txt 파일이 존재하는지 확인합니다.
    $ touch aaa.txt
    $ ls -l 
    -rw-r--r--  1 SHU  staff  0  6 18 13:44 index.html
    -rw-r--r--  1 SHU  staff  0  6 18 13:45 aaa.txt
    

    dev01 브랜치에 push


    $ git add -A
    $ git commit -m "added a new file"
    dev01 8f62edc] added a new file
     1 file changed, 0 insertions(+), 0 deletions(-)
     rename test.txt => aaa.txt (100%)
    
    $ git push
    Counting objects: 2, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (2/2), 284 bytes | 284.00 KiB/s, done.
    Total 2 (delta 0), reused 0 (delta 0)
    git hTo https://github.com/tnoce/test
       12030df..8f62edc  dev01 -> dev01
    
    

    원격 측에 반영되었는지 확인합니다.


    마스터 브랜치에 병합



    master 브랜치에 병합하려면 master 브랜치에 있는 상태에서 병합할 브랜치를 지정해야 합니다.
    앞서 "dev01"로 "aaa.txt"파일을 만들었으므로 dev01을 병합 소스의 분기로 지정합니다.
    $ git checkout master
    Switched to branch 'master'
    Your branch is up to date with 'origin/master'.
    
    $ git status
    
    $ git merge dev01
    Merge made by the 'recursive' strategy.
     aaa.txt | 1 +
     1 file changed, 1 insertion(+)
     create mode 100644 aaa.txt
    

    merge 하고 만족해서는 안됩니다.
    어디까지나 로컬 측만 merge 되었을 뿐이므로, 병합 된 내용을 push합시다.
    (commit 필요 없음)
    $ git status
    On branch master
    Your branch is ahead of 'origin/master' by 3 commits.
      (use "git push" to publish your local commits)
    
    nothing to commit, working tree clean
    
    $ git push
    Counting objects: 1, done.
    Writing objects: 100% (1/1), 234 bytes | 234.00 KiB/s, done.
    Total 1 (delta 0), reused 0 (delta 0)
    To https://github.com/tnoce/test
       0fe6078..b118ace  master -> master
    

    원격 저장소 측에서 마스터 브랜치에 dev01 브랜치의 내용이 반영되었습니다.


    마지막으로



    병합편에 대해 어떻습니까?
    다음 번은 병합했을 때의 conflict의 해소 방법에 대해서도 갱신해 가고 싶습니다.

    이상

    좋은 웹페이지 즐겨찾기