[KT Aivle AI] 1주차. Git

hyowon·2024년 3월 19일
0

KtAivle

목록 보기
1/39
post-thumbnail

1. 개요

주제 : Git
내용 : Git 버전의 이론과 VS code를 활용하여 GUI 형태로 Git을 사용하는 방법을 알려주셨다. 추가로, CLI로 하는 법을 익히시는게 좋으시다고 하셔서 그렇게 할 예정이다.(업로드 예정)

2. Git

  • Git은 DropBox와 같이 데이터를 보관 및 관리를 해주는 분산형 버전 관리 시스템이다.
  • 개발자로서 Domain Knowledge, 코딩 능력, 협업 능력이 중요하다.
  • 이 중, 협업 능력이 제일 가성비가 좋다.

3. Git에 대하여 생각해야할 3가지

  • 버전: 소프트웨어 개발과 협업에서는 코드 변경사항을 지속적으로 확인해야 합니다. 또한, 프로젝트의 버전을 효율적으로 관리하는 것이 필수적으로 요구됩니다.
  • 백업 : Git은 버전 관리 외에도 백업 기능을 제공하는 측면에서 혁신적으로 작용했습니다. 이전에는 중요한 프로젝트 데이터를 안전하게 저장하고 복구하는 것이 어려웠지만, Git을 사용함으로써 이러한 과정이 혁신적으로 단순화되었습니다.
  • 협업: 과거에는 여러 개발자가 동시에 작업하고 변경사항을 통합하는 것이 어려웠습니다. 하지만, 지금은 Git을 통해 프로젝트를 효과적으로 관리할 수 있습니다.

4. 핵심 개념

1. Commit

Commit 은 새로운 버전을 만드는 행위를 말합니다. 현재 작업하고 있는 내용을 저장하고, 그것을 버전으로 커밋합니다.

2. Add

git add 명령어는 3가지 의미가 있습니다.

첫 번째 : 파일을 Commit 대기 상태로 변경하는 역할을 합니다.

두 번째 : untracked 파일을 tracked로 변경하는 역할을 합니다. untracked 파일은 새로운 파일이나 Git이 추적하지 않았던 파일을 의미합니다. git add를 실행하면, 해당 파일의 변경사항이 추적되고, 커밋 대기 상태에 들어가게 됩니다.

세 번째 : git add를 실행하면, 파일의 변경사항을 일부만 스테이징하고 나머지는 나중에 추가할 수 있습니다. 이렇게 하면, 여러 작업을 구분하고 정리할 수 있습니다.

3. Stage Area

git add로 Commit 대기 상태가된 파일들이 저장되는 임시 공간을 Stage Area나 스테이징 영역이라고 합니다.

4. 새로운 버전

git은 Commit 대기 상태에 있는 파일들만을 새로운 버전으로 만들 수 있습니다. 해당 기능은 Git의 특징 중 하나입니다.

5. .git 폴더 & working directory

.git 폴더는 Git의 저장소(repository) 정보를 담고 있는 공간이며, 워킹 디렉토리는 개발자가 작업하는 영역입니다.

6. 버전의 스냅샷

각각의 Git 버전은 그 버전이 만들어진 시점의 Stage Area의 스냅샷입니다. 스냅샷은 특정 시점에서 파일이나 디렉토리의 상태를 기록한 것을 의미합니다.

7. Head & main branch

HEAD는 현재 작업 중인 버전을 가리키며, main은 가장 최신 버전을 가리킵니다. HEAD가 부모, 마지막 버전이 main이라고 할 수 있습니다.

8. Checkout

git checkout 명령어를 사용하여 HEAD를 이동시킬 수 있고, 특정 Commit 상태로 이동할 수 있습니다.

9. Commit ID

Commit ID를 복사해두면, 무조건 복구할 수 있으며, 아래 코드를 사용할 수 있습니다.
git checkout <커밋ID>: 특정 커밋 상태로 이동
git checkout main: 최신 버전으로 이동

10. branch & base

Git에서 branch를 새로 생성하면, 새로운 독립적인 작업 환경을 만들 수 있습니다. 그리고 각 branch는 base로부터 나뉘어집니다.

11. both modify

두 개 이상의 버전이나 base에서 동일한 파일의 동일한 부분을 수정한 경우 발생하는 충돌을 의미합니다. 쉽게 말해서, 동일한 파일에 다른 부분이 있다는 것을 뜻합니다.

12. remote tracking branch

원격 저장소와 로컬 저장소를 동기화하여, 다른 개발자와의 협업을 용이하게 합니다.

13. Pull & Push

git pull은 원격 저장소에서 변경 사항을 가져오고 합치는 과정을 의미하고, git push는 변경 사항을 원격 저장소에 업로드하는 과정을 의미합니다.

앞으로 열심히 해보자 파이팅!

profile
안녕하세요. 꾸준히 기록하는 hyowon입니다.

0개의 댓글