본문 바로가기
웹 기초/Git,Github

Git | 정리 1

by leek94 2022. 12. 19.

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 될 경우 발생할 수 있는 문제를 미리 방지

- 현재 코드에 대한 코드 리뷰를 진행

- 프로젝트에 대한 진행 상황을 관리