EnJinnier

깃허브 사용법 본문

기타

깃허브 사용법

공학도진니 2024. 3. 12. 23:40

본격적인 협업에 앞서 가볍게만 알고 있던 깃허브 관련 지식을 정확히 할 필요가 있다고 느껴

인프런의 "알아서 잘 딱 깔끔하고 센스있게 정리하는 GitHub 핵심 개념" 강의를 참고하여 정리해두려고 한다.

 

https://paullabworkspace.notion.site/GitHub-435ec8074bcf4353afb947f601a030df

 

알아서 잘 딱 깔끔하고 센스있게 정리하는 GitHub 핵심 개념 | Notion

들어가며

paullabworkspace.notion.site

 

0. 나의 Github

나의 깃허브 아이디 : yoonjin-C

나의 깃허브 프로필은 내 아이디로 된 레파지토리를 생성한다음에 리드미파일을 만들어 꾸며야 함. (이력서 대용으로도 사용됨)

사용가능한 스킬셋, Pinned에서 대표적인 프로젝트 설정, 잔디밭(코딩표)


1. 용어 설명

Repository

하나의 레파지토리 = 하나의 프로젝트 폴더(public/private 선택으로 공유 여부 선택가능)

웹의 마이페이지에서 우측 상단의 + 버튼을 클릭하면 새로운 레포지토리를 생성할 수 있음

 

 

생성 시 README 파일을 함께 생성해야 명령어가 덜 복잡하다. (생성하지 않으면 CLI부터 시작해야함)

웹페이지 내에서 내가 만든 레포지토리를 확인하면 다양한 액션을 취할 수 있다.

 

Commit

-메세지를 남기는 기능(변경된 내용을 내 로컬 저장소에 올림)

-파일이 생성된 이유, 수정된 부분 등 협업을 위해 관리하는 메세지

-파일을 수정하고, 다시 깃허브에 업데이트 할때 '커밋한다'라고 표현함.

 

수정한 파일 메세지와 함께 업로드하기

 

1. VSCode에서 파일을 수정

2. 왼쪽 메뉴에서 세번째인 Source Control 클릭

3. 커밋할 메세지 작성 후 커밋버튼 클릭

 


2. 기본 명령어 과정

git clone / git pull (깃허브 -> 내컴퓨터)

웹에서 생성한 레포지토리 안에 있는 내용물을 내 컴퓨터의 폴더 안으로 가져올때 사용하는 명령어

새 작업 디렉토리 만들고 생성한 디렉토리로 이동 후 클론

$ mkdir filename

$ cd filename

$ git clone https://github.com/id/clone-filename.git

    //폴더 내에서 새로운 폴더를 하나 만든 후 그 안에서 파일을 받음

$ git clone https://github.com/id/clone-filename.git //새로운 폴더를 만들지 않고 위치한 폴더에서 그대로 파일을 받음

git add

git이 관리할 대상의 파일 등록하는 명령어

$ git add README.md // 지정 파일 올리기

$ git add . // 파일 전체 올리기

add를 해주면 파일이 추적되는 상태가 되고 commit을 해주면 버전을 생성하여 올렸기때문에 다시 unmodified 상태가 됨

 

git commit 

파일을 올릴 준비를 하는 명령어

(버전을 만들어주는 역할)

$ git commit -m "저장 메세지를 입력해주세요"

(commit 만 한 상태에서는 github의 폴더에 반영되지 않음. push까지 해줘야 반영됨)

 

git push (내컴퓨터 -> 깃허브)

내 컴퓨터에서 작업하고 수정한 파일을 깃허브(공유 폴더)에 다시 업로드 하는 명령어

 

 

한번 실습해보자. 이 과정은 비행기가 착륙하여 새로운 승객들을 태우고 다시 이륙하는 것과 비슷하다.

1. 원하는 레포지토리의 우측 상단의 Code를 누르면 나오는 url 을 복사한다.

2. 내가 넣고 싶은 폴더를 우클릭하여 '폴더에서 새로운 터미널 열기'를 선택한다.

3. " $ git clone {복사한 url} . " 을 입력해준다. ( . 은 전체를 의미)

  - 폴더에 .git과 다른 파일들이 생성된 것을 확인할 수 있다. '.git' 은 히스토리를 관리하는 파일.

4. 해당 폴더에 새로운 파일을 추가하거나 수정하여 하고싶은 작업을 해준다.

5. " $ git add . " 을 입력하여 수정된 모든 내역을 탑승시켜준다.

6. " $ git commit -m '{원하는 메세지}' " 를 입력 후 엔터를 입력한다.

  - m 은 message라는 뜻이다. commit 명령어만으로는 실제로 반영되지 않으며 보낼 준비를 한다고 생각하면 편하다.

7. " $ git push " 명령어를 통해 github로 수정한 내용을 보내 반영해준다.

8. 만약 다른 사람이 레포지토리를 추가적으로 수정해 내가 그 파일들을 다시 내 폴더에 업데이트 시키려면 

   " $ git pull " 명령어를 입력해 업데이트 시킬 수 있다.

 


3. 알아두면 좋은 그 외 명령어

https://paullabworkspace.notion.site/2-Git-560d34629faf4d4cb19ad0462bbb4dc7

 

2. Git | Notion

1. Git이란?

paullabworkspace.notion.site

^참고하기

$ mkdir {폴더명}

- 폴더 생성 명령어

- linux 명령어

 

$ cd {폴더명}

- 현재 위치를 해당 폴더로 이동하는 명령어

- linux 명령어

 

$ git init

- 비어있는 git 레퍼지토리로 초기화.

- 폴더안에 .git이라고 숨겨진 폴더로 만들어진 것을 확인할 수 있음. 여기에 버전 정보, 원격 저장소 주소가 저장됨 

-git 명령어

 

$ ls

- 안에 있는 폴더나 파일을 보는 명령어

- option: -al  좀 더 상세하게 보겠다는 뜻

- linux 명령어 

 

$ touch {생성할 파일명}

- 파일 생성 명령어

  ex) touch test.txt

- linux 명령어

 

$ rm  {제거할 파일명}

- 제거 명령어

 

$ git status

- 파일 상태 확인하는 명령어

 

$ git diff

- 변경사항 확인하는 명령어

- 최근 커밋한 내용과 현재 폴더의 변경 사항을 확인할 수 있음

 

$ git log 

- 히스토리 조회하는 명령어

- 최근 커밋한 히스토리를 확인할 수 있음

 


4. branch(나누기)

https://paullabworkspace.notion.site/4-Branch-7552c2a8c2b340ce9622a8a6364dc47a

 

4. Branch | Notion

1. Branch 사용하기

paullabworkspace.notion.site

 

여러 개발자가 협업할때 별도로 작업하여 합치는 것을 Git에서 브랜치와 머지라는 명령으로 가능하게 한다.

브랜치(branch) : 별도로 작업해서 별도의 공간을 마련하는 것

머지(merge) : 합치는 것 

 

 

git에서의 기본 브랜치는 master 브랜치(GitHub은 main) 이다.

origin: 원격 저장소명

 

브랜치 사용방법

$ git branch

- 현재 브랜치 목록과 현재 브랜치 확인

 

$ git branch {브랜치명}

- branch 만들기

- option : -d (대문자도 가능) 를 넣으면 해당 브랜치가 삭제됨. $ git branch -d {브랜치명}

-- 삭제한 브랜치를 복구하는 법도 가능하다.(필요시 나중에 위 노션링크에서 따로 찾아보자.)

 

 

$ git checkout {브랜치명}

- 해당 브랜치로 이동하여 사용(사용할 브랜치를 지정)

 

$ git switch {브랜치명}

- 브랜치를 변경- option: -c : 브랜치를 새로 만듦과 동시에 변경  $ git switch -c {새로운 브랜치명}

 

$git restore {파일명}

- 해당 파일에서 변경되었던 내용을 복원

- option: --staged : 스테이지에 올렸던 것(add했던것)을 빼는 방법

  $ git restore --staged {파일명}


5. merge(합병하기)

나눠서 작업하던 브랜치를 다시 합치는 작업이다.

요론느낌

 

$ git checkout main 

$ git log(선택) //여태까지 push했던 내역 볼 수 있음

$ git merge {branch했던 브랜치명}

 

두 branch로 나누어 작업했던 것을 병합하는 명령어이다.

위 작업 수행 시 입력한 branch와 main이 합쳐지며 main에 해당 branch에서 했던 작업물들이 뜬다.

 

merge가 완료되었으면 push까지 해주어야 원격 저장소에 반영된다.

$ git push origin main

 

만약 두개 이상의 브랜치를 머지하였는데 수정 내역이 달라 충돌(conflict)이 나면

해당 파일로 들어가 둘 중에 하나를 지워주고 다시 add-commit-push 과정을 반복해주기만 하면 된다.


6. Fork

https://paullabworkspace.notion.site/5-Fork-de72f67592ab4b3a88bf28fe649c824e

 

5. Fork | Notion

1. Fork란?

paullabworkspace.notion.site

 

전체를 다 복사해온 다음 내가 코드를 수정하던가 추가하는 것을 말한다.

허락을 받지않고 가져오는 것이기 때문에 원본 작성자가 만든 저장소에서 커밋 푸쉬를 하는 것이 아닌 내 저장소에 커밋 푸쉬를 한다는 점이 특징이다.

 

Fork하는 법은 간단하다.

1. 복사하고자 하는 Github 레파지토리에 들어가서 오른쪽 상단에 Fork를 클릭한다.

Fork가 완료되면 내 레파지토리에 생성된 것을 볼 수 있다.

2. Fork한 저장소를 클론하기 위해 주소 복사 버튼을 클릭하고 저장하고 싶은 곳에 클론한다.

 

이렇게 하면 포크가 완료되어 수정이 가능한데, 원본 저장소에서는 수정이 반영되지 않고 마찬가지로 내가 포크한 이후에 원본 저장소에서 수정된 것들은 그 내역을 내가 볼 수 없다. 따라서 원본 저장소의 이력을 보고 싶은 경우에는 원본 저장소를 원격 저장소에 추가해야 한다.(추가 방법은 노션 페이지 참고)

 

브랜치와 포크의 차이점

 

브랜치와 포크는 두가지 모두 코드를 협업하기 위해 분기점을 나누는 방식이지만 특성이 다르므로 프로젝트에 맞게 사용해야 한다.

별도의 저장소를 만든다는 점이 가장 큰 차이점이다.

7. Pull Request

https://paullabworkspace.notion.site/6-Pull-Request-fd958fd434fb41ea85d0a370654441ac

 

6. Pull Request | Notion

1. GitHub Pull Request란?

paullabworkspace.notion.site

상대방의 저장소를 Fork한 후 원본 저장소에 올리고 싶을 때 원본 저장소의 권한을 가진 사람에게 두 브랜치를 합치는 것을 허락해 달라고 요청을 보내는 것을 Pull Request 또는 PR이라고 한다.

 

Pull Request 방법은 위 노션을 참고.

 

'기타' 카테고리의 다른 글

[Git]  (0) 2024.06.05
[깃허브] 오류 해결 모음  (0) 2024.05.20