프로그래머로부터 배우는 코딩의 기술

코스 전체목록

닫기

버전관리란?

본 수업은 폐지 예정입니다. 새로 학습하시는 분은 새로운 버전의 수업을 봐주세요. http://opentutorials.org/course/1492

버전관리 시스템이란?

  • 프로그램의 변경 이력을 관리하는 소프트웨어
  • 작업일지
  • 협업
  • 백업

Git이란?

  • 분산된 버전관리 시스템
  • 차이점이 아니라 스냅샷으로 저장
  • 거의 모든 명령을 로컬에서 실행
  • 체크섬을 통해서 파일을 관리
  • 저장소의 내용은 데이터를 추가하기만하고 되돌리거나 삭제할 수 없다.

참고자료

댓글

댓글 본문
  1. egoing
    여기서 제외 되도 아래 링크를 통해서 계속 보실 수 있습니다 :)

    http://opentutorials.org......215
    대화보기
    • 푸른뫼
      egoing 님,

      이 코스를 폐지하지 않으시면, 안되나요?
      원하던 내용이 담겨져 있어서 사람들과 공유를 하고 싶습니다.
    • 한란
      링크가 작동하질 않네요..ㅠㅠ
      대화보기
      • egoing
        예 심화입니다!
        대화보기
        • 한란
          작심프로젝트에서 더 공부하세요 클릭해서 이 사이트로 넘어왔는데요. 작심프로젝트의 심화버전 페이지라고 생각해도 되나요?
        • 우종민
          try.github.io
          여기도 정말 좋은것 같습니다. 웹상에서 git 이용방법 실습을 할 수 있도록 만들어놓은 사이트입니다.(영문)
        • gibbs
          여기가 그 유명한 생활코딩 사이트군요... 반갑습니다...
        • 정인수
          egoing님은 신인가봐!
        • 행복한자유인
          정말 존경스럽습니다!!
        • sviolot
          git와 svn의 가장 큰 차이가 온라인 회선연결 없이 로컬에서 변경사항이 저장되는지 여부라고 생각해도 될까요?
          생활코딩 git, svn 동영상 강좌 다 듣고
          http://allofsoftware.net/238 해당 글 참고해봤습니다.
        • Heechul Jeon
          우와... 진짜 대단하십니다... 블로그 너무 잘 만드신것 같아요...후에 자주 들릴께요... ^^
        • 고양이안에쥐
          공동공부 시작합니다.
        • egoing
          콘솔이 더 좋은 건 아닙니다. 손에 맞는 것을 쓰시면 됩니다.
          2013년 5월 14일 화요일에 Disqus님이 작성:
          대화보기
          • 조수방이
            회사에서GIT를 통해 버전관리를 하려고 도입단계입니다. 콘솔버전을 ' GIT, 분산버전 관리시스템'책으로 배우고 있습니다. 책이 너무 어렵고 쌩 초보라 포기하려던 순간인데 tortoise는 책에도 나오지 않았던건데 처음 접하네요. 신세계네요. 그런데 강의를 보니 Console보다 tortoise가 더 편해보이는데 따로 console을 사용하는 이유는 뭘까요?프로그램에 ㅍ도 모르는 관광전공자인데 부장님께서 시키시네요. ㅠㅠ 흑흑
          • Sungjin Gang
            클라이언트와 서버 서비스는 어떤걸 쓰시나요..??
            깃허브를 이용하시면 한글입력이 가능합니다. 외국분들과 같이 하시는것 아니시면... 한글로 적으시면 될것데요...
            대화보기
            • 유수 원
              이거 git 커밋할때 커멧메세지를 한글로 입력할수있는 방법은 없을까요?? 영어가 짧아서 너무 힘드네요.ㅠㅠ
            • Chang W. Doh
              git에 익숙하지 않다면 여기( http://pcottle.github.com/lear... )에서 간단한 게임으로 익숙해져 보는 것도 괜찮습니다. ^^
            • egoing
              다른 링크로 대체했습니다. 이거 좋네요 :)
              대화보기
              • Rags
                참고자료 중 cheatsheet 의 링크에 문제가 있는 것 같습니다.링크 클릭 시 ' Not Found ' 라는 메시지가 출력 됩니다. 확인 부탁 드립니다. ^^
              • Starmomo
                [ Git Cheat Sheet ]git명령어가 궁금하면 git 명령어 --help 한다.shell> git command --helpglobal git설정 파일 : $HOME/.gitconfig(git config --help)
                * Create1. 기존 데이타를 가져올 때,cd ~/projects/myprojectgit initgit add2. repo(기존 저장소)로부터 가져올 때,git clone ~/existing/repo ~/new/repogit clone git://host.org/project.gitgit clone ssh://you@host.org/proj.git
                * Show(보기)표기법: $id는 커밋id, 태그명, branch 표기, $file는 임의의 파일, $branch는 임의의 branch name
                1. 작업 디렉토리의 변경된 파일보기git status2. 트랙(modified와 staged) 변경내역 보기git diff3. $ID1과 $ID2(두 파일) 사이의 변경된 내용 비교하기git diff $id1 $id24. 변경 내역git log5. 파일의 트랙변경과 히스토리 보기git log -p $file $dir/ec/tory/6. 누가, 언제, 무엇을 변경했나?git blame $file7. 아이디별 커밋 구분git show $id8. 특정 아이디가 만든 특정 파일git show $id:$file9. 모든 로컬 브랜치들git branch
                * Concepts(개념)
                * Revert(되돌리기)1. Return to the last committed stategit reset --hard ! you cannot undo a hard reset2. Revert the last commitgit revert HEAD Creates a new commit3. Revert specific commitgit revert $id4. Fix the last commitgit commit -a --amend (after editing the broken files)5. Checkout the $id version of a filegit checkout $id $file
                * Branch(가지)1. Switch to the $id branchgit checkout $id2. Merge branch1 into branch2git checkout $branch2git merge branch13. Create branch named $branch based on the HEADgit branch $branch4. Create branch $new_branch based on branch $other and switch to itgit checkout -b $new_branch $other5. Delete branch $branchgit branch -d $branch
                * Update(업데이트)1. Fetch latest changes form origingit fetch (but this does not merge them)2. Pull latest changes from origingit pull (does a fetch followed by a merge)3. Apply a patch that some sent yougit am -3 patch.mbox (in case of a conflict, resolve and use git am --resolved)
                * Publish(발행하기)
                * 유용한 명령들1. Finding regressionsgit bisect start (to start)git bisect good $id ($id is the last working version)git bisect bad $id ($id is a broken version)
                git bisect bad/good (to mark it as bad or good)git bisect visualize (to launch gitk and mark it)git bicsect reset (once you're done)
                2. Chect or errors and cleanup repositorygit fsckgit gc --prune
                3. Search working directory fo foo()git grep "foo()"
                * Merge Conflicts(충돌) 해결1. To view the merge conclictsgit diff (completd conflict diff)git diff --base $file (against base file)git diff --theirs $file (against otehr changes)2. To discard conflicting patchgit reset -hardgit rebase --skip3. After resolving conflicts, merge withgit add $conflicting_file (do for all resolved files)git rebase --continue
              • Rags
                정말 감사합니다. ^^
              • 가리왕
                손놓고 있던 내용을 다시 보게 되어서 고맙습니다.
              • shin jung hun
                좋은 강좌 감사드립니다.
              • 아톰
                GIT 미루다가 이제서야, 좋은 강의를 보네요~ 잘 봤습니다 :D
              • Jehwan Ryu
                버전관리 많이 발전했군요. 10여년 전에 CVS 잠깐 써 본 게 단데... 그 땐 TortoiseCVS 가 있었죠. ^^ MS Office 에 저런 비교 기능이 있는 것도, 그 기능을 git 가 지원한다는 것도 새로 알게 되었네요. (이 경우는 tortoiseGit 가 지원하는 거겠죠?) 언제나처럼 좋은 강의 고맙습니다!
              • Ggolkaq
                좋은 강좌 잘 보고 갑니다 ^^ 감사합니다
              • YoungJin Shon
                영상 새로 정리하시고 강좌도 늘어났네요.이전에 본 영상도 처음부터 한 번 더 보며 공동공부해봅니다. ^ㅁ^
              버전 관리
              egoing@gmail.com
              현재 버전
              선택 버전
              graphittie 자세히 보기