git에 대해서
- 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
- 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 |