1. CIL의 개념
1) cli 와 gui의 차이
- 개발자들만의 컴퓨터 활용 방식인 command line interface (cli)
- 우리가 평소에 사용하는 방식, 폴더 안의 파일을 클릭해서 컴퓨터를 활용하는 방식은 graphic user interface (gui)
2) 절대 경로와 상대 경로
- 상대 경로는 현재 내가 위치한 곳에서의 본 특정한 폴더/파일의 경로 (내가 users/(유저명) 이라는 경로에 있다면 desktop 폴더의 경로는 그냥 desktop)
- 절대경로는 내가 위치한 곳과 상관없이, 특정한 폴더/파일이 위치한 경로의 전체 주소로 /users/(유저명)/desktop\
로 표시 할 수 있다.
3) 기본적인 폴더 생성 및 디렉토리 명령어
- mkdir (폴더이름) 이라고 터미널에 타이핑을 하면 폴더를 만들 수 있다.
- cd (폴더명) 폴더명으로 디렉토리 변경
- cd .. 상위 디렉토리로 변경
※ - 개발을 할 때는 cli 라는 환경에서 작업을 진행하게 된다.
- 경로는 파일, 폴더가 위치한 ‘주소’ 를 뜻한다.
2. git의 개념
1) git 설명
- git 이란 특정 폴더, 파일들의 버전 관리를 위한 프로그램입니다. 프로젝트 등을 진행할 때, 진행 상황을 수시로 기록하면서, 필요할 때는 이전 상황으로 돌아갈 수 있게 해주는 등 종합적으로 폴더/파일의 수정 사항을 관리를 말합니다.
2) git commit 설명
- git add 라는 명령어를 이용하여 어떤 파일을 관리하지 지정
- git commit 이라는 명령어를 통해 하나의 버전으로 저장합니다.
- git add 를 통해서 관리되기 전의 파일들을 untracked file
git add를 통해서 관리되는 파일들을 Staged(tracked file)
git commit을 통해서 관리되는 파일들을 commited(tracked file)
3. Git 명령어
1) git에 이메일 연결 명령어
- git config --global user.email "(유저이메일)"
- git config --global user.name "(유저명)"
2) git 설정 명령어
- git init 현재 폴더를 Git으로 개괄하는 명령어
- git init 설정을 취소하는 명령어
- git add (파일명) 변경된 파일을 git에 임시 저장
- git add . 변경된 모든 파일을 git에 임시 저장
- git commit -m " " 변경된 파일 git에 저장, " " 안에 내용은 commit 확인을 할 수 있는 제목을 입력
- git log 깃의 로그 확인, 본문 및 제목을 확인 가능
- git log --oneline 깃의 로그를 한줄로 제목만 확인 가능
3) git 수정 명령어
- git revert (커밋 번호 6자리) 현재까지의 commit 기록을 유지하면서
, commit 이전으로 되될리는 명령어(되돌리고 싶은 commit 명시)
- git reset --soft (커밋번호) 특정 커밋으로 돌아가면서
, 그 커밋 이후의 커밋 기록을 삭제하는 명령어(되돌아가고 싶은 commit을 명시) add가 된 상태로 돌아감 staged
- git reset --mixed (커밋번호) -soft와 비슷하지만 add가 되지 않은 상태 unstaged
- git reset --hard (커밋번호) 명시한 그 커밋 이후의 모든 수정사항들을 완전히 삭제하는 기능까지
[vim 관련 필수 명령어]
- (esc 후) i → (커서가 있는 부분부터) 파일 내부의 내용을 작성, 수정할 수 있습니다.
- (esc 후) dd → (커서가 있는 부분의) 행을 삭제합니다.
- (esc 후) :wq → 파일을 저장하면서 에디터를 종료합니다.
- (esc 후) :q → 파일을 저장하지 않고 에디터를 종료합니다.
4. Branch 기본
1) branch의 기본 개념과 활용법
- branch 는 분기 라는 뜻을 가지고 있는데요, 말그대로 버전 관리의 분기점을 만드는 기능
- 현재 작업 중인 내용을 유지하면서, 파일과 커밋 기록을 별도로 관리하고자 할 때, 브랜치를 분기하게 된다.
- 브랜치를 분기하게 되면, 그때부터는 파일과 커밋 기록이 완전히 별도로 관리된다.
- 브랜치는 얼마든지 추가로 더 만들 수 있는데, 항상 원본 브랜치가 있어야 분기 (새 브랜치를 만드는 것) 를 할 수 있다.
2) branch 기본 브랜치명 변경
- git branch 기본 설정이 master로 되어 있는데 Black Lives Matter 운동의 일환으로 main 이라는 브랜치명을 사용하게됨
- git config --global init.defaultBranch main
- git branch -m main를 입력하여 기본 설정을 main으로 변경
3) branch 명령어
- git switch -c (새 브랜치 명) 새로운 브랜치 생성
- git branch --list 현재 사용되고 있는 브랜치의 리스트 확인
- git branch -D (브랜치 명) 브랜치 삭제
- git switch (브랜치명) 변경하고자 하는 브랜치명으로 변경
- git branch --mergerd 머지된 목록 확인
- git branch --no -merged 머지되지 않은 목록 확인
4) branch 병합하기: merge
- git merge는 서로 다른 branch 의 작업 내용을 하나의 branch 로 통합하기 위한 명령어
- git merge (브랜치) main에서 사용하면 main과 브랜치가 합쳐짐 이후 vim으로 넘어감
- git log --graph --decorate --oneline으로 나뉘어진 로그를 확인 가능
5) branch conflict
- main branch와 분기된 branch에 같은 줄에 코드를 작성하면 merge시 conflict가 발생함
- merge conflict시 어떻게 합쳐야 할지 결정해야 한다
6) branch merge 방식
- git merge (브랜치) 사용시 fast-forward 기본 branch merge 방식으로 main 브랜치에 다른 브랜치 commit 기록이 병합되면서 아래와 같이 커밋 기록이 만들어짐
- git merge develop --no-ff 사용시 non fast forward 방식으로 merge 되어 이전 커밋 기록이 남게됨
6) Pull request의 개념과 목적
- Pull Request 란 ‘내 담당 브랜치에서 작업이 완료되었으니, 이 브랜치의 코드를 병합해주세요’ 라는 요청을 보내는 것
7) Pull Request를 사용하는 이유
- 내가 작성한 코드가 바로 merge 될 경우 발생할 수 있는 문제를 미리 방지
- 현재 코드에 대한 코드 리뷰를 진행
- 프로젝트에 대한 진행 상황을 관리