[Git & Github] Git 실습 _ 로컬 깃 저장소 생성

2023. 2. 12. 19:55Git & Github

로컬 git 저장소 생성 

Step 0. 기본 설정 

편리하게 터미널을 사용해 주기 위해 desktop에 폴더를 만들고 visual studio코드에서 새터미널 실행을 해주었다. 

bash 로 설정해주기(mac)

 

Step 1. 초기화

 $git init

깃에서 폴더 안의 파일들을 관리하기 위해서는 init 명령어들을 통해 초기화를 진행해 주어야 한다. 초기화가 진행되면 Working Directory 안에 .git 이라는 숨김 폴더가 형성되고 소스 이력 등 해당 디렉토리에 대한 모든 정보가 .git에 저장된다. 

** 따라서 꼭! 나의 프로젝트가 위치한 곳으로 이동한 후 터미널에서 명령을 실행해 주어야 한다. 

<실습>

 

초기화 명령어를 실행해 주고 리스트를 확인해 보니  test2 폴더(working Directory)에 .git 폴더가 생성된 것을 볼 수 있다. 이제 이곳에 commit 정보 등이 담길 것이다. (+앞에 d는 디렉토리를 의미한다.)

 

Step 2. .gitignore 파일 추가 

민감 정보 특히나 개인정보는 외부 저장소에 저장되는 경우 심각한 보안사고를 일으킬 수 있다.  데이터 베이스 계정, 클라우드 시크릿 키, 각종 민감 정보는 절대 원격 저장소에 저장되어서는 안된다. working Directory에서  .gitignore에 저장되어 있는 파일은 git에서 무시하기 때문에 탐지되지 않은 채로 나머지 파일들만 원격 저장소로 넘어간다. 

<실습>

여러 txt파일을 생성하고 몇개의 파일을 무시하기 위해 .gitignore 파일을 생성했다. 

 

한줄 한줄로 구분되기 때문에 위와 같이 적어면 t2,t3 파일은 이제 무시된다.

 

Step 3. Staging 영역에 저장된 파일 확인 

$git status

 어떤 파일들이 추적되고 있고, staging area에 어떤 파일들이 들어 있는지 확인하는 명령어 

 

Step4. 나의 프로젝트 중 버전관리에 반영할 파일 지정 

$ git add . _ 전체 파일이 넘어감 
$ git add "파일명" _ 넘기고 싶은 파일 지정 

버전 관리에 반영된 파일의 영역이 바로 Stagin Area이다.

<step3, step4 실습>

test2 폴더 전체가 아니라 ttest.txt 파일만 한정하여 staging 영역에 넘기고 상태 확인 명령어를 사용해주면 staging 영역에 .gitignore과 나머지 폴더들은 넘어가지 않은 것을 확인 할 수 있다. 

$ git rm --cached ttest.txt

나머지 모든 파일을 넘겨주기 위해 ttest.txt 파일을 staging 에서 삭제해 주면 아래와 위와 같이 삭제가 된다. 

'.' 을 이용하여 모든 파일을 넘겨주었다. 

 

+ 생각해보니 .gitignore에 아무 파일도 적지 않았는데 test2, test3 파일은 왜 add 되지 않았나 생각해보니 test2, test3 에 아무런 내용도 적지 않았기 때문이다. 즉 수정된 내용이 없으니 add되지 않은 것이다. 

test2 와 test3에 뭔가 적고 넘겨보니 잘 넘어 간다. 

 

Step5.  버전 관리에 반영 된 파일들을 Local Repository에 commit

$ git commit -m "message"

로컬 저장소에 변동 기록을 남기기 위해 commit을. 실행하고 이 변동 기록을 우리는 '버전' 이라고 한다. 

새로운 버전을 git에 등록하는 것이다. 

커밋의 정보기록이 잘 남아있어야 수정 사항에 대해 빠르게 대응 할 수 있으므로 메세지를 꼭 남겨야 한다 

<실습>

로컬 레포지토리에 수정사항 저장

 

*  이 상태는 아직  나의 Local 서버에 존재하는 것이기 때문에 이 소스를 다른 이들과 공유하고 싶다면 원격 저장소에 저장해야 한다. 

 

+ Step6(option). 현재 바라보고 있는 브랜치 이름을 main으로 변경 

_ option _ 마스터로 설정된 경우 다른 프로그램과의 충돌 예방을 위해 main으로 변경해 주어야 함.

$ git branch -M main

 

각각의 branch는 독립적인 공간이다. Main/Master 브랜치는 보통 즉시 운영 배포할 수 있는 버전 혹은 사용자가 지금 이용 중인 코드로, 모든 작업사항이 합쳐지는 지점이다. 따라서 함부로 수정되어서는 안되기 떄문에 다른 브랜치에서 수정한 후 최종적으로 메인 함수에 합치게 된다. 

- stagin : 상용에 반영하기 전 테스트 버전 

- feature : 새로운 기능 추가 개발 (병렬 작업 )

 

'Git & Github' 카테고리의 다른 글

[Git & Github] 깃허브로 협업하기  (0) 2023.02.12
[Git & Github] Github에 소스 반영  (0) 2023.02.12
[Git & Github] Git의 구조 _ 4가지  (0) 2023.02.12