본문 바로가기

LearningJavaScript

9. Version Control System and Git

git에 대해서

  1. Why use version contorl?
    • store different versions
    • restore previous versions
    • understand what happend (may see the changes made in codes)
    • collaboration (with other people)
    • backup
  2. GitHub
    • one kind of Version Control System
    • a social platform for git users (리액트(페북이 만듬) 같은 유명 오픈소스도 깃허브를 사용함)
    • open source:
    • repository: 다양한 브랜치(단계)가 있다. 어떤 maintainer(fb)가 관리하는 리파지토리(react)에 내가 어떤 기능을 추가하고 싶다면, 직접 수정할 권한이 없기 때문에, 나의 리파지토리로 가져와서 진행을 해야한다.
      • master branch: 사용자(end user)들에게 직접 배포해야할 프로그램 소스코드가 들어가는 데
      • develop branch: 개발중인 버젼의 소스코드가 들어있는 브랜치; 여기서 충분한 테스트를 거쳐 버그를 확인한 후 마스터로 머징할 수 있어야해. 여기서 안정화가 되면 마스터 브랜치로 머징한다.
      • feature branch: 하나 하나의 기능을 담고 있는 곳. 게임 프로그램이라하면, 기사 직업만 있는데 마법사 직업을 추가한다면, 마법사의 기능을 추가... 브랜치에 어떤 기능을 추가할 때, 새로운(미세) 기능?을 짜는 데라고 생각하면 될듯?
    • features by workflow:
      • working directory -("git add")- staging area -("git commit")- local repo -("git push")- remote repo
      • staging area - 버전 관리를 받게 하려면 staging area에 올리는 과정이 필요. "git add"를 이용해 working directory에서 staging area로 옮길 수 있게됨. staging area에 올라와있어야 repository에 commit(making snapshot of...)이 가능함. 명령어 쓰는 법: git commit -m "Add headline to index page"반드시 commit msg를 써줘야함. 커밋 메시지는 협업할 때 작업기록을 추적하는데 중요.
      • repository: 작업기록과 작업흐름(git workflow)을 모두 포함하고 있는 개념. 각 commit기록을 볼 수 있음.
      • branching and merging - 브랜치로부터 가지를 새로 치는게 브랜칭, 그 가지를 다시 기존 브랜치로 합치는게 머징.
      • distributed - 어떤 메인테이너(관리자)가 관리하는 remote repository (in github)란 깃허브의 다양한 리포지토리중 특정 리포지토리 하나를 통째로 내 계정으로 가져올 수 있다
        • fork - 타인의 리파지토리를 통째로 복사해와서 내 계정으로 가져오면 수정할 수 있다
        • clone - 에서 url을 복사하고 내 컴퓨터(local repository/origin)로 가져와 작업한뒤
        • push - "git push origin master" 다시 remote repository로 올려놓을 수 있다
        • pull - 다른 누군가 변경을 줬다면? 파일 병합 가능. remote repository에 있는 변경사항을 내 컴퓨터에 적용시킬 때. maintainer가 변경한 경우엔? "upstream"...
        • 다시 remote repository로 올려놓고 메인테이너에게 변경된 소스를 검사 받은 후 적용이 되는 게 오픈소스 작업의 흐름이 된다.
      • data assurance - 

 

branden macmillan - dog trainner, this random ad came up but I liked it lol

 

'LearningJavaScript' 카테고리의 다른 글

12 객체지향 JavaScript  (0) 2020.08.07
11. Scope & Closure  (0) 2020.08.05
8. CLI: Command Line Interface  (0) 2020.08.04
7. 객체  (0) 2020.07.30
6. 배열 (arrays)  (0) 2020.07.30