9일차 - 깃 & 깃헙 (기본 터미널 명령어, add, commit, Repository, gitignore)

Yohan·2024년 3월 4일
0

코딩기록

목록 보기
10/156
post-custom-banner

(1-1) What is git?!

깃 (git)

분산 버전 관리 시스템(Distributed Version Control System, DVCS) 중 하나이며 프트웨어 개발에서 소스 코드 관리에 주로 사용

분산 버전 관리 시스템

버전 관리 시스템(VCS)은 시간에 따라 문서나 소스 코드와 같은 정보의 변화를 기록하고, 특정 시점의 버전을 다시 불러올 수 있는 시스템
-> 동시에 같은 프로젝트에 작업을 할 수 있고, 버전 간 차이점을 볼 수 있고, 이전 버전으로 되돌아갈 수 있으며, 변경을 쉽게 찾아낼 수 있다.

개발자가 Git을 사용해야하는 이유

  1. 버전 관리
  2. 협업 도구
  3. 코드의 안정성 유지
  4. 코드 리뷰 및 추적
  5. 배포 관리

깃허브 (github)

GitHub는 Git을 사용하는 프로젝트를 호스팅하는 웹 기반 서비스
개발자는 GitHub를 통해 소스 코드를 저장하고 공유할 수 있다. 또한, GitHub는 협업 도구를 제공하여 다른 개발자들과 함께 코드를 개발하거나 수정할 수 있다.

git vs github

git은 소스 코드의 버전 관리를 위한 도구
gitHub은 Git을 사용하는 프로젝트를 온라인 상에서 공유하고 협업하는 서비스
git은 로컬에서 동작하지만, gitHub은 인터넷 연결이 필요


(1-2) Git 설치

Git을 사용하는 2가지 방법

  1. CLI : 명령어 기반 버전관리 (터미널 작업)
  2. GUI : 그래픽 기반 버전관리 툴 (소스트리, GitHub Desktop, Git Kraken 등)

처음 git을 설치하고 해야할 설정

  • 처음에 터미널이나 git bash에 버전을 생성한 사람의 정보를 기록하기 위한 설정을 해준다! 설정법은 아래와 같다
$ git config --global user.name "유저닉네임" // 닉네임은 github, gitlab에서 사용할 닉네임 추천
$ git config --global user.email "유저이메일"   // 이메일은 실제 github이나 gitlab 가입메일
  • 그리고 나는 코드 에디터 설정을 vscode로 해주지 않았기 때문에 vscode와 연결하기 위해 아래와 같은 코드도 설정해주었다.
git config --global core.editor "code --wait" // vscode로 변경

(1-3) 기본 터미널 명령어

기본 터미널 명령어

  • ls
    • 하위 폴더, 파일 보기
  • ls -l ( ll )
    • 하위 폴더, 파일 자세히 보기
  • ls -a
    • a 옵션을 주면 숨김폴더 및 파일의 정보가 추가로 출력됨
  • pwd
    • 현재 위치한 폴더 출력
  • cd
    • 원하는 경로로 이동
    • cd 뒤에 .. 을 붙이면 상위 폴더로 이동가능, ../..을 붙이면 상위의 상위 폴더로 이동가능!
    • cd + 탭키 : cd 명령어 뒤에 탭키를 누르면 이동할 수 있는 목록이 출력
  • mkdir 폴더명
    • 새 디렉토리 생성 (새 폴더 생성)
  • rm -rf 폴더
    • 폴더 삭제 (안에 들어있는 파일까지 모두 삭제 !!)
  • rm 파일명
    • 파일 삭제하기
  • clear
    • 현재 터미널 출력 내용 깨끗하게 지우기
  • start . : 현재 위치한 폴더를 열기
  • touch : 파일 생성하기
  • git log : git에 commit된 log들을 확인 가능
  • git log--oneline : log들을 한 줄로 간단하게 확인 가능

(2-1) Git Repository

Git Repository(레포지토리)는 Git에 의해 관리되는 프로젝트 디렉터리

-> 프로젝트의 모든 파일과 각 파일의 수정 이력을 담은 정보가 포함, 프로젝트의 상태를 특정 시점으로 되돌릴 수 있거나, 변경 이력을 조회하거나, 다른 브랜치로 전환하는 등의 작업을 수행

레포지토리의 유형

  • 로컬 레포지토리
    • 개발자의 컴퓨터에 저장된 레포지토리로, 여기서 개발자는 코드를 수정하고, 커밋을 생성하며, 브랜치를 관리 -> Git
  • 원격 레포지토리
    • 인터넷 상에 존재하는 레포지토리로, 여기서 개발자들은 코드를 공유하고, 협업을 진행 -> GitHub, GitLab, Bitbucket

로컬 레포지토리 생성하기

  1. git bash에 git.init을 원하는 폴더 안에서 입력한다.
    -> 입력하게되면 그 폴더안에 .git 이라는 파일이 생성되는데 이 파일이 생성되면 .git이 존재하는 폴더 아래에 있는 모든 것들은 git에 의해 관리 되고 있다는 것을 의미

  2. (master)표시가 뜬 것을 확인한다

  • 뜬다면 깃에 의해 버전관리가 되고있다는 뜻 !! (하위폴더를 생성해도 모두 포함됨!)
  1. 아직은 버전 관리가 이루어지는 파일은 없기 때문에 파일을 생성하거나 수정한 후 git add 명령어를 사용하여 변경사항을 스테이징 영역에 추가하고, git commit 명령어를 사용하여 변경사항을 레포지토리에 저장한다. (잘 진행되고 있는지 확인을 위해 git status 명령어로 중간 확인 가능 !)

주의사항

  • git init은 최초 한 번만 !!! 즉, .git 파일은 한개만 존재해야함
    -> 이미 버전관리가 시작된 폴더를 다시 init하는 실수를 저지르지 말자!

(2-2) Add, Commit

Git Status 명령어

git status 명령어는 Git 레포지토리의 상태를 확인하는데 사용되는 명령어

-> 어떤 파일이 수정되었는지, 어떤 파일이 아직 스테이징되지 않았는지, 현재 어떤 브랜치에 위치해 있는지 등의 정보를 확인 가능

Git add, Git commit

git add 명령어는 변경된 파일들을 스테이징 영역(또는 인덱스)에 추가하는데 사용된다. 이렇게 스테이징 영역에 추가된 파일들은 다음 커밋에 포함될 준비가 된 것으로 간주됨

  • git add [이름] , git add .

git commit 명령어는 스테이징 영역에 추가된 변경사항들을 실제로 레포지토리에 저장(커밋)하는데 사용된다. 커밋을 생성할 때는 해당 변경사항에 대한 설명을 담은 커밋 메시지를 함께 작성해야함 !!

  • git commit -m "Your commit message"

(2-3) Atomic Commit

Atomic Commit

commit은 최소한의 변경 사항만을 담아야 함을 의미 -> 최대한 작게 쪼개자!!!

좋은 커밋 메시지 작성하기

  1. 제목과 본문을 분리하기

제목과 본문은 빈 줄로 분리해야 한다. 이는 Git의 명령 줄 도구뿐만 아니라 많은 웹 기반 도구들도 이 형식을 사용하므로 중요한 원칙!

  1. 제목 줄은 간결하고 명확하게

제목 줄은 가능한 50자 이내로 작성, 큰 변화를 요약하는 것이 좋다. 또한, 제목의 마지막에 마침표를 찍지 않습니다.

  1. 제목 줄에 명령문을 사용하기 - 과거시제보다 현재시제로 작성

제목 줄은 명령문으로 작성하는 것이 좋다. ("Add feature" not "Added feature" or "Adds feature"). 이는 많은 Git 도구에서 사용하는 규약

  1. 본문에는 "무엇을" "왜" 바꾸었는지 설명하기

본문에는 "무엇을" 변경했는지 보다 "왜" 변경했는지 설명하는 것이 좋습니다. 코드는 "무엇을" 변경했는지를 설명해주지만, "왜" 변경했는지는 코드만으로는 이해하기 어렵기 때문이다.

  1. 본문을 72자 정도로 제한하기

Git은 자동으로 메시지를 72자로 줄이지 않으므로, 직접 줄 바꿈을 추가하여 본문의 각 줄이 72자가 넘지 않도록 하는 것이 좋다.

  1. 이슈 트래커 ID를 참조하기

관련된 이슈나 버그 트래커 ID를 참조하면, 커밋과 이슈 사이의 관계를 명확하게 할 수 있다.

직전 커밋 수정하기 :git commit --amend

  • 만약 커밋을 생성한 후에 추가로 커밋에 포함시키려는 파일이 있다면, 해당 파일을 스테이징 한 후 git commit --amend 명령어를 실행하면 된다.

(2-4) git ignore

.gitignore 파일

  • .gitignore 파일은 Git에서 특정 파일이나 디렉토리를 버전 관리에서 제외하는 데 사용
  • gitignore.io 사이트를 이용해서 쉽게 추가 가능 !!

-> notepad .gitignore을 통해 gitignore을 열어서 내가 비밀번호를 설정한 password.txt을 gitignore 파일에 추가하면 password.txt는 git status에 뜨지않게됨

profile
백엔드 개발자
post-custom-banner

0개의 댓글