본문 바로가기
TIL (Today I Learned)/GIT

[GIT] 팀 프로젝트를 위한 git 공부. #1

by 둥굴프 2022. 11. 25.
이 문서는 '생활코딩' 님의 '지옥에서 온 GIT'을 참고하여 작성됐습니다.

 

크래프톤 정글에서 살아남기 위한 도구 중 하나가 git이다.

급하게 사용할 때는 github에서 직접 브랜치를 생성하고, 디렉토리를 업로드했다.

0주 차 프로젝트 때는 vscode에서 명령어로 진행하기도 했다.

하지만, 당시 작동되는 원리를 하나도 모른 채 진행하다 보니 오히려 더 긴 시간이 더  소요됐다.

 

5주 차의 시작과 함께 GIT에 대한 공부를 하고 그 내용을 여기에 메모하려고 한다.

버전 관리 시스템은 미래에 발전할 수도 있고, 사용자의 환경에 따라 명령어나 작동 형태가 다를 수 있다.

이를 참고하여 해당 문서를 활용하면 좋을 거 같다.

 

win 11, wsl2 ubuntu 20.04 환경에서 진행.
+ zsh , oh my zsh 사용 ( 에디터 꾸미기 )

 

 

Version Controll System

CVS , SVN , GIT

 

버전을 관리하기 위한 시스템 중 하나가 GIT

만약 관리하고자 하는 코드의 복잡도가 낮고 가볍다면, 또한 바로 활용해야 한다면 복잡한 GIT을 활용하지 않고, DropBox 등을 활용하는 것이 좋다.

 

 

#1 세팅

 

1. GIT 설치

https://git-scm.com/downloads

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

2. 윈도우 시작에서 GIT BASH 검색하여 실행.

- GIT BASH는 윈도우 환경에서 리눅스, 유닉스에서 사용하는 명령어 형태를 사용할 수 있게 도와주는 프로그램이다.

- 나는 정글에서 사용하는 ubuntu 환경에서 연습하기로 했다.

 

3. 작업 폴더 만들기 or 들어가기

 

- pwd : 현재 위치

- mkdir {폴더명}  : 폴더 생성

- rmdir {폴더명} : 폴더 삭제

- ls : 폴더 및 파일 목록 출력

- cd {폴더명} : 현재 위치 이동

 

- git을 입력하면 명령어 및 도움말이 출력된다.

어떤 상황에 사용해야 하는지와 관련된 명령어가 출력되는 것을 확인할 수 있다.

 

4. .git 폴더 생성 ( git init )

 

- git init 입력 → .git 폴더 생성 ( ls -al 입력하여 확인 ) : 버전 관리 과정에 생성되는 정보들이 저장된다.

해당 폴더를 삭제하게 되면 마지막 소스코드는 남아있지만 나머지 버전에 대한 정보는 사라진다. (주의할 것)

 

 

 

 

#2

 

 

1. 명령어로 파일 생성

 

- vim f1.txt : 'vim'이라는 프로그램으로 'f1.txt'라는 파일을 편집 및 생성하겠다.

 

- vim 명령어 참고 사이트 :

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-Vi-Vim-%EC%97%90%EB%94%94%ED%84%B0-%EB%8B%A4%EB%A3%A8%EA%B8%B0-%EB%AA%85%EB%A0%B9%EC%96%B4-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

 

[LINUX] 📚 Vi / Vim 에디터 다루기 명령어 💯 정리

VI / VIM 에디터 파일을 작성하거나 수정하기 위해서는 편집기가 필요하기 마련이다. 윈도우에서는 메모장을 편집기의 기본으로 지원하는 반면, 리눅스에서는 기본 편집기로 vi 편집기를 지원한

inpa.tistory.com

 

- i를 입력하여 입력 모드로 진입 ( INSERT ) > 내용 입력 > esc ( 명령어 모드 ) > :wq ( write quit ) 수정 사항을 저장하고 에디터를 나간다.

 

 

2. git 버전 관리 상태 확인 ( git status )

 

- git status 입력 ( 버전 관리를 위해서 제일 먼저 익혀야 할 것 )

 

wsl 의 출력 형태가 바뀐 것은 'zsh' 'oh_my_zsh' 를 키워드로 검색

 

- 현재 f1.txt라는 파일은 버전 관리가 되고 있는 디렉토리인 'gitfth' 안에 존재하지만 git에게 해당 파일을 버전 관리하라고 명령하기 전 끼지 git 은 해당 파일을 무시한다.

 

3. 버전 관리 파일 추적 ( git add )

 

- git add f1.txt : 명확하게 추적하라고 명령한다.

'new file' 로 인식한다.

- 왜 이러한 기능이 필요?

- 프로젝트를 하다 보면 핵심적인 파일과 임시적인 파일들을 구분하기 위해서.

임시적인 파일을 배제하기 위해서 버전 관리해야 할 파일을 명확하게 해줘야 한다.

- 즉 핵심적인 파일은 추적하고, 임시적인 파일은 추적하지 않는다.

 

- clone의 위험성-

clone 한 파일들 잘못 수정하여 commit 하면 main branch의 파일이 망가질 위험이 있다.

 

 

#3

 

 

버전은 의미 있는 변화를 의미한다.
작업이 완결된 상태가 버전이다.

 

1. 사용자 등록 ( git config )

- git config --global user.name {이름 or 닉네임}

- git config --global user.email {작성자 이메일}

- 작성자 이름과 이메일을 포함하고 있는 버전이 된다. > 다른 사람이 봤을 때 누가 작업했는지 알 수 있게 된다. 한 번만 입력하면 되는 작업

 

2. 버전 관리를 git에게 넘기기 ( git commit )

- git commit : vim으로 파일이 열린다. 나는 nano 에디터로 열렸다.

- 혹시나 GNU nano 에디터로 열리게 된다면 에디터 하단에 출력되는 명령어에 따라 편집을 하면 된다.

- nano에서 ^ 표시는 ctrl을 뜻한다.

 

- 해당 파일은 버전에 대한 메시지를 적는 것이다. ( commit message )

 

commit message를 입력한 이후, 성공적으로 버전 생성

 

3. 버전 관리 기록 확인 ( git log )

- git log : 버전의 commit message와 만든 사람의 이름, 이메일, 언제 만들었는지 출력된다. ( q 누르면 나가 진다 )

 

- vim f1.txt > 버전 관리 파일을 수정.

 

Changes not staged for commit

 

4. 새로운 버전 관리 방법 ( 기존의 파일을 수정한 경우 )

- 바로 git commit 하면 안 된다. 다시 버전 관리 시스템( git ) 한테 add 시켜야 한다.

- 새로운 파일이 생겼을 때 그 파일의 버전 관리를 깃 에게 명령할 때 add 사용. > 최초로 추적할 때 add

- 이미 버전 관리가 되고 있는  파일의 수정이 끝나고 버전을 생성할 때도  add를 사용. > 파일이 수정되어 버전을 만들기 전에 add

- git add {파일명} 이후에 git commit 한다.

 

 

긴 글 읽어주셔서 감사드립니다.

22.11.24

댓글