Git 1일차
● Git 이란 분산 버전 관리 시스템 (DVCS)중 하나로 속도, 데이터 무결성, 분산시스템지원을 포함한 비선형 작업흐름을 지원하는 프로그램입니다.
하는 일은 다음과 같습니다.
1. 버전관리 : 쉽게 이야기해서 게임에서 세이브 포인트를 만드러주는 거라고 생각하면 편합니다. commit이라는 단위로 특정 시점의 세이브 포인트를 만드는 것을 말합니다.
2. 협업 도구 : branch 기능은 개발자가 독립적으로 작업하는 공간을 만들어 주어 다른 부분에 영향을 주지 않도록 합니다.이후에 변경사항들은 병합을 통해 메인코드에 반영하여 쌓아갈 수 있습니다.
3. 코드의 안정성 유지 : 위에서 말한 commit이라는 단위를 통해 언제든 돌아갈수있습니다.(사용자가 지우지만 않는다면...)
4. 코드 리뷰 및 추적 : 변경사항을 추적관리 할수있습니다.
5. 배포 관리 : 여러버젼 관리가 가능하여 CI및 CD파이프라인과 함께 사용되어 효율적입니다.
* CI : countinous integration CD : countinuous Deployment
● Git과 Github
Git과 Github는 로컬에서 주로 사용하는가 웹에서 주로 사용하는가에 있습니다. 그리고 Github는 결국 Git 기반의 프로그램입니다.
git은 2가지 방법으로사용할 수 있습니다.
1) CLI 명령어 기반 버전관리 ( 터미널 작업 ) → 리눅스에서도 쓰이는 명령어이므로 중요하게 알아야함.
2) GUI 그래픽 기반 버젼관리 툴 → 생산성이나 효율적 측면에서 월등함.
●Git(리눅스) 에서 자주 쓰이는 명령어
pwd : 현재 위치한 디렉토리 경로 출력
ls : 현재 위치한 디렉토리 안에 있는 폴더와 파일 목록 보기
ls -a : -a 옵션을 주면 숨김폴더 및 파일의 정보가 추가로 출력됩니다.
cd : 폴더 이동하기
cd .. : cd 뒤에 .. 을 붙이면 상위 폴더로 이동할 수 있습니다.
clear: 현재 터미널 출력 내용 깨끗하게 지우기
start . : 현재 위치한 폴더를 엽니다. - for Windows
mkdir : 폴더 생성하기
touch : 파일 생성하기
rm 파일명 : 파일 삭제하기
rm -rf 폴더명: 폴더 삭제하기 (주의!! - 폴더 안에 모든 내용까지 함께 삭제됨)
● Git Repository
Git에 의해 관리되는 프로젝트 디렉터리
- Working Directory: 현재 작업 중인 프로젝트의 파일들이 위치하는 디렉토리입니다.
- Staging Area (Index): commit하기 위해 선택한 파일들의 정보를 저장하는 영역입니다. 이 영역을 통해 원하는 파일들만을 커밋에 포함시킬 수 있습니다.(잠깐저장하는곳)
- .git Directory (Repository): Git의 메타데이터와 객체 데이터베이스를 저장하는 디렉토리입니다.이 디렉토리를 복사하면 프로젝트의 모든 버전 정보와 히스토리를 복사하는 것과 같습니다.
● Git Repository 사용법
- $ git init 명령어를 사용하여 레포지토리를 생성 (버전관리 시작) → .git 파일이 생성된것을 확인해야함.
- $ git add 명령어를 사용하여 변경사항을 스테이징 영역에 추가
- $ git commit 명령어를 사용하여 변경사항을 레포지토리에 저장
● Git Branch
브랜치(Branch)는 'master' 또는 'main'이라는 이름의 기본 브랜치 → master & slave란 표현이 옳지 않다는 의견이 있으므로 main으로 업데이트 되고 있다고 합니다.
용도 : 개발자들은 새로운 기능이나 버그 수정 등의 작업을 별도의 브랜치에서 수행한 뒤, 그 변경 사항이 안정적이고 배포 가능하다고 판단되면 'master' 또는 'main' 브랜치에 병합(merge)합니다.
switch 명령어는 브랜치를 전환하는 기능만을 담당하는 것을 인지해야합니다.
1. 병렬 개발
각 브랜치는 독립적인 작업 공간이므로, 여러 사람이 동시에 다른 작업을 진행할 수 있습니다.
2. 버전 관리
각 브랜치는 특정 버전의 코드를 가리킵니다. 이를 통해 과거의 어떤 시점으로도 쉽게 돌아갈 수 있습니다.
3. 안정성
'main' 브랜치는 항상 안정적인 버전의 코드를 유지하면서, 다른 브랜치에서는 새로운 기능이나 실험적인 변경을 시도할 수 있습니다.
4. 병합과 충돌 관리
브랜치 간의 변경 사항을 병합하는 과정에서 발생할 수 있는 충돌을 더 쉽게 관리할 수 있습니다.
● 실습내용 추가 (1)
● 실습내용 추가 (2)
ps. 여담으로 Github의 고양이 모양은 문어가 고양이 탈을 쓰고 있는 거라고 합니다.
'PlayData 백엔드 부트캠프 정리' 카테고리의 다른 글
PlayData 백엔드 부트캠프 Start 7일차 (0) | 2024.08.17 |
---|---|
PlayData 백엔드 부트캠프 Start 6일차 (0) | 2024.08.15 |
PlayData 백엔드 부트캠프 Start 5일차 (0) | 2024.08.14 |
PlayData 백엔드 부트캠프 Start 4일차 (1) | 2024.08.12 |
PlayData 백엔드 부트캠프 Start 2일차 (0) | 2024.08.09 |