[초보자를 향해] git의 설명

Giit 소개



기록, 추적 프로그램의 원본 코드 등 변경 역사를 기록하는 분산형 버전 관리 시스템입니다
Linux는 리나 토바르가 개발한 OS입니다.
버전 관리 시스템에는 중앙 집중식 CVS 및 SVN/subversion 등이 있습니다.

버전 관리란




소스 코드는 매일 수정됩니다. 왜, 언제, 누구, 무엇이 바뀌었는지, 역사를 기록하는 것이 매우 중요합니다.
파일의 변경 사항은 편집기의 '저장' 과 '덮어쓰기 저장' 기능을 통해 업데이트되지만, 왜 업데이트되었는지, 무엇을 업데이트했는지 뒤돌아보지 않습니다
또 실패할 때는 원래의 상태를 회복하고 싶고, 소프트웨어 기능으로 전 세대로 회복하면 회복할 수 있을지도 모르지만, 1년 전의 상태로 회복하는 등 동작은 어렵지 않을까
혼자만 관리하면 괜찮을 것 같은데 여러 사람이 같이 개발할 때나 납품할 때 관리 상태가 안 되면 곤란해요.
예를 들어, A가 HTML 및 CSS 파일을 변경한 경우 B가 JavaScript 파일을 변경한 경우
팀워크로서 A와 B의 작업을 합친 것을 최종적으로 납품한다
A 씨는 B 씨의 소스 코드를 받은 뒤 A 씨가 쓴 소스 코드를 바꾸지 않으면 무엇을 만들었는지 모른다
게다가 이맘때 바뀐 게 있는지 B씨에게 물어보지 않으면 어떻게 바뀔지 몰라
버전 관리의 목적은 팀이 이 정보의 교환을 효율적으로 진행하도록 하는 것이다

기트를 배우는 이유는요.



프로그래밍, 공학, 체계적인 학습에서 회고와 타인의 의견은 매우 중요하다
이 두 가지를 목적으로 소스 코드를 검사하는 행동(예: B씨는 A씨가 한 것을 보고 평론을 한다)
댓글은 A씨가 만든 소스와 B씨의 댓글과 의견이 필요합니다.
이때 Giit를 사용하면 매번 원본 파일을 올릴 때마다 어떤 부분을 변경했는지 등 정보를 보낼 필요가 없다. B씨의 댓글도 이력서로 남겨서 업무와 학습은 물론 효율적이다.
원본 파일을 수동으로 업로드할 때 발생하는 오류 등 오류를 방지할 수 있다

GiitHub 소개



Git를 가져오고 운용하기 위해서는 전용 서버가 필요했다
매번 프로젝트를 할 때마다 전용 서버를 만들어야 하는데, 프로그래밍을 배우기 시작한 사람은 갑자기 서버를 만들어야 하기 때문에 난이도가 매우 높다.
따라서 GitHub은 Git의 편리한 기능을 사용할 수 있는 서비스로 등장했다
GiitHub은 소스 코드를 관리하는 동시에 여러 사람이 협업하여 개발할 수 있는 소프트웨어 개발 플랫폼이다
2009년 GTI 서비스 중 가장 많이 사용된 서비스는 2008년 4월부터 제공
2018년 10월부터 마이크로소프트가 인수하여 새로운 개발과 운용 체제를 형성하였다
원본 관리뿐만 아니라 작업 관리, 간단한 HTML/CSS/JavaScript 제작 페이지 등 공개 가능한 기능도 갖추고 있다
다음은 GiitHub의 기능 중 일부입니다.
  • Public 및 Private의 Repository
  • Gist
  • GitHub Pages
  • GiitHub의 유사 서비스
  • Bitbucket
  • GitLab
  • 실제 학습


    새로운 단어들이 많이 나오긴 했지만 쓰면 기억하기 쉬울 거예요
    꼭 기억해야 할 일이지만 연습할 수 있는 환경을 손에 넣고 반복해서 기억해야 한다

    준비 운동


    terminal or iTerm2를 사용하여 작업용 폴더 만들기 = 작업용 폴더
    $ git version // git入ってるか確認できるやつ
    $ ls // 今PCに何が置いてあるか確認できるやつ
    $ mkdir workspace // PCの中に新しくディレクトリ作るやつ
    $ pwd // 今自分がどの階層にいるか確認できるやつ
    $ cd workspace // 階層を移動しちゃうやつ
    $ pwd
    

    Giit 사용 방법 1: 초기 설정


    Remote Repository = origin
  • GiitHub로 Remote Repository 제작
  • Local에서 Clone Repository
  • 자신의 PC에서 네트워크에 있는 창고를 다운로드하는 의미
  • README 무서워하지 마
  • 소스 코드 수정
  • 변경된 원본 코드add를 인덱스로 변경
  • add에서 Index로의 내용commiit에서 Local Repository
  • push 이전에Fetch(정보의 업데이트를 진행해야 함)
  • Local Repository에서commiit의 내용을 Remote Repository
  • 로 push
  • Giithub에서push를 확인한 내용
  • ## レポジトリをクローンする
    $ git clone [https://github.com/user-name/repository-name.git]
    
    ## 現在のgitのステータスを確認する【これめっちゃ使う】
    $ git status
    
    ## 更新したファイルの中身を確認する【これもよく使う】
    $ git diff [file name]
    
    ## Indexにaddする
    $ git add [file name]
    
    ## Local Repositoryにcommitする
    $ git commit -m "メッセージは自由に書きましょう"
    
    ## Pushする前にfetchする【忘れるので習慣化する】
    $ git fetch
    
    ## Remote Repositoryの登録
    $ git remote add origin 'https://github.com/user-name/repository-name.git/'
    ## または
    $ git remote add origin 'https://[email protected]/user-name/repository-name.git/'
    
    ## Remote Repositoryにpushする
    $ git push
    ## Passwordを求められたらGitHubアカウントのパスワードを入力する
    
    ## git pushでエラーが出たら
    fatal: Authentication failed for 'https://github.com/user-name/repository-name.git/'
    
    ## 再度Remote repository URLの登録をしてあげる
    $ git remote set-url origin https://[email protected]/user-name/repository-name.git
    

    Giit 사용 방법 2: 분기 작업


    Giit-Flow를 기억하고 분기 Merge를 잘라내세요.

    Git-Flow


  • checkkout으로 마스터 지점에서 개발자 지점
  • 으로 자르기
  • Develop 지점에서feature 지점 차단
  • 분기 전환 시도
  • 작업
  • 소스 변경을 통해dd
  • commiit 및 메시지 남기기
  • fetch
  • 진행
  • push
  • GiitHub에 Pull request
  • 작성
  • 검사하는 시간!
  • 내용이 좋으면 메르지
  • ## ブランチを作る
    $ git checkout [branch name] // ブランチを作るだけ or 既にある場合はブランチを移動する
    $ git checkout -b [branch name] // 作った後にブランチを切り替える
    
    ## 存在しているブランチを全て確認する
    $ git branch -a
    

    Giit 사용 방법 3: 오류 발생 시


    오류 시 대응
    $ git reset // 履歴を残さない
    $ git revert // 履歴を残す
    
    초보자에겐 리버트(함정→GiitHub에서 병합된 조정 가능을 복구한 후 Revert 지점에서 계속 일하고 싶을 때가 필요 없다
  • git add의 취소
  • ## 全部やり直し
    $ git reset HEAD
    
    ## ファイル指定のやり直し
    $ git reset HEAD [file_name]
    
  • git commiit의 취소
  • ## 直前のcommitを打ち消す
    $ git reset HEAD
    
  • git push의 취소
  • ## commitを無かったことにして
    $ git reset HEAD
    
    ## 修正したものをリモートへpush
    $ git push -f origin HEAD
    

    초보자일 때는 안 하는 게 좋을 것 같아요.

  • force 옵션을 사용하지 마【약속】
  • 강제 해결이므로 복구가 불가능할 수 있음
  • 잘 모를 때 리베이스를 사용하지 마세요.
  • 익숙해지면 OK
  • 총결산

  • Git의 작동 방식에 익숙해졌기 때문에 실패하더라도 좌절하지 마세요
  • Giit의 조작 방법을 자주 볼 수 있는 상태로 설정하고 모르는 부분은 조사하는 습관을 기르기
  • SourceTree 등 Git 소프트웨어도 있으니 각자 원하는 것을 사용하세요
  • 참고 자료

  • Giit와 Subversion의 구조상의 차이, Giit의 지점과 Subversion의 지점은 완전히 다르다
  • [도해] 개발 현장에서git-flow, GiitHub Flow를 사용하기 위해 이런 것들을 기억해 주세요.
  • git의 기본 동작
  • 좋은 웹페이지 즐겨찾기