[git] git과 github

최준영·2024년 1월 10일

Git 이란?

2005년 리누스 토르발스가 개발한 분산형 버전 관리 시스템(DVCS)이다.
주로 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 파일에 대한 작업을 조율할 때 사용한다.
(주로 여러명의 개발자가 소프트웨어 개발 프로젝트에 참여할때 코드를 관리할 때 사용!)

GitHub란?

GitHub은 Git 버전 관리 시스템을 사용하는 웹 기반 호스팅 서비스로, 주로 소프트웨어 개발 프로젝트의 소스 코드 관리에 사용된다.
-> github에서 만든 repository는 remote repository 의 한 예시이다.

github 의 장점

  • 버전관리
    GitHub는 Git의 모든 기능을 지원하며, 사용자들이 코드 변경사항을 추적하고 다른 개발자들과 협업할 수 있게 해줍니다.
  • 협업
    GitHub은 코드 검토, 분기 및 이슈 추적과 같은 기능을 통해 개발자가 프로젝트에서 쉽게 협업할 수 있게 한다.
  • repository hosting
    사용자는 GitHub에 private 또는 public repository를 만들어 코드를 호스팅할 수 있습니다. 이를 통해 프로젝트에 대한 버전 관리 및 백업이 가능합니다.
    (hosting이란 서버 컴퓨터를 이용 가능하게 임대해주는 서비스를 의미한다.)

Git을 쓰는 이유?

코드를 작성할 때 파일 변경내역을 저장하는 것이 필요한데 git을 사용함으로써 깔끔하게 버전관리를 위해 사용한다.

Git의 기본 용어

1. repository

git으로 관리하는 프로젝트 저장소를 의미한다.

  • local repository
    본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
  • remote repository
    로컬이 아닌 외부서버의 저장소 (e.g github의 repository)

2. staging area

Staging area는 커밋하기 전 변경 사항을 임시로 저장하는 공간을 의미한다.

3. commit

의미있는 변경 작업들을 repository에 기록하는 동작을 의미한다.

4. Branch

여러 사용자가 독립적으로 작업을 진행할 수 있도록 도와주는 작업 흐름이라고 생각하면 된다
(Branch example)

위 사진에서 나와 다른 사람이 독립적으로 작업을 진행하고 있는데 이때 내 작업하고 다른 사람의 작업을 branch라고 생각하면 된다!

5. merge

영어로 합병이라는 의미로 여기 git에서는 다른 branch 내용하고 합치는 작업을 의미한다.

6. Head

현재 작업중인 branch를 가르킨다.

Git의 명령어

1. git init

git 저장소를 초기화하고(생성) .git폴더가 생성된다.

2. git status

현재상태를 확인

3. git add [file]

file을 staging area에 추가한다.
('git add .'명령어는 '.'이 현재 디렉토리를 의미하므로 현재 디렉토리 내에 있는 파일을 모두 추가한다)

4. git commit -m [commit message]

staging area에 있는 추가된 파일들을 커밋 한다. 커밋 메시지는 보통 변경사항에 대한 설명으로 한다!
-> 변경사항이 local repository 에 기록

5. git clone [url]

url remote repository 에 있는 내용을 컴퓨터로 가져온다.

6. git remote add [remote][url]

git url 에 remote(저장소) 이름으로 등록한다.

7. git push

local repository 내용을 remote repository로 보낸다.

8. git pull

리모트 레포지토리의 내용을 로컬 레포지토리로 가져온다.

9. git branch [name]

'name'이라는 이름의 branch를 생성한다.

10. git checkout [name]

'name'이라는 이름의 branch 로 head를 전환한다.

11. git merge [name]

'name'이라는 이름의 branch 내용을 현재 branch 와 합친다.
-> merge confilct

  • merge 할 때 발생하는 충돌이고 이를 해결하기 위해 충돌이 발생한 파일을 수정 후 다시 merge해주면 된다.

0개의 댓글