분산 버전 관리 시스템(Distributed Version Control System, DVCS) 중 하나이며 프트웨어 개발에서 소스 코드 관리에 주로 사용
버전 관리 시스템(VCS)은 시간에 따라 문서나 소스 코드와 같은 정보의 변화를 기록하고, 특정 시점의 버전을 다시 불러올 수 있는 시스템
-> 동시에 같은 프로젝트에 작업을 할 수 있고, 버전 간 차이점을 볼 수 있고, 이전 버전으로 되돌아갈 수 있으며, 변경을 쉽게 찾아낼 수 있다.
- 버전 관리
- 협업 도구
- 코드의 안정성 유지
- 코드 리뷰 및 추적
- 배포 관리
GitHub는 Git을 사용하는 프로젝트를 호스팅하는 웹 기반 서비스
개발자는 GitHub를 통해 소스 코드를 저장하고 공유할 수 있다. 또한, GitHub는 협업 도구를 제공하여 다른 개발자들과 함께 코드를 개발하거나 수정할 수 있다.
git
은 소스 코드의 버전 관리를 위한 도구
gitHub
은 Git을 사용하는 프로젝트를 온라인 상에서 공유하고 협업하는 서비스
git
은 로컬에서 동작하지만,gitHub
은 인터넷 연결이 필요
$ git config --global user.name "유저닉네임" // 닉네임은 github, gitlab에서 사용할 닉네임 추천
$ git config --global user.email "유저이메일" // 이메일은 실제 github이나 gitlab 가입메일
git config --global core.editor "code --wait" // vscode로 변경
ls
ls -l ( ll )
ls -a
숨김폴더
및 파일의 정보가 추가로 출력됨pwd
cd
..
을 붙이면 상위 폴더로 이동가능, ../..
을 붙이면 상위의 상위 폴더로 이동가능!cd + 탭키
: cd 명령어 뒤에 탭키를 누르면 이동할 수 있는 목록이 출력mkdir 폴더명
rm -rf 폴더
rm 파일명
clear
start .
: 현재 위치한 폴더를 열기touch
: 파일 생성하기git log
: git에 commit된 log들을 확인 가능git log--oneline
: log들을 한 줄로 간단하게 확인 가능Git Repository(레포지토리)는 Git에 의해 관리되는 프로젝트 디렉터리
-> 프로젝트의 모든 파일과 각 파일의 수정 이력을 담은 정보가 포함, 프로젝트의 상태를 특정 시점으로 되돌릴 수 있거나, 변경 이력을 조회하거나, 다른 브랜치로 전환하는 등의 작업을 수행
로컬 레포지토리
Git
원격 레포지토리
GitHub, GitLab, Bitbucket
git bash에 git.init
을 원하는 폴더 안에서 입력한다.
-> 입력하게되면 그 폴더안에 .git
이라는 파일이 생성되는데 이 파일이 생성되면 .git
이 존재하는 폴더 아래에 있는 모든 것들은 git에 의해 관리 되고 있다는 것을 의미
(master)표시가 뜬 것을 확인한다
git add
명령어를 사용하여 변경사항을 스테이징 영역에 추가하고, git commi
t 명령어를 사용하여 변경사항을 레포지토리에 저장한다. (잘 진행되고 있는지 확인을 위해 git status
명령어로 중간 확인 가능 !)git init
은 최초 한 번만 !!! 즉, .git
파일은 한개만 존재해야함
git status
명령어는 Git 레포지토리의 상태를 확인하는데 사용되는 명령어
-> 어떤 파일이 수정되었는지, 어떤 파일이 아직 스테이징되지 않았는지, 현재 어떤 브랜치에 위치해 있는지 등의 정보를 확인 가능
git add 명령어는 변경된 파일들을 스테이징 영역(또는 인덱스)에 추가하는데 사용된다. 이렇게 스테이징 영역에 추가된 파일들은 다음 커밋에 포함될 준비가 된 것으로 간주됨
git add [이름]
, git add .
git commit 명령어는 스테이징 영역에 추가된 변경사항들을 실제로 레포지토리에 저장(커밋)하는데 사용된다. 커밋을 생성할 때는 해당 변경사항에 대한 설명을 담은 커밋 메시지를 함께 작성해야함 !!
git commit -m "Your commit message"
commit은 최소한의 변경 사항만을 담아야 함을 의미 -> 최대한 작게 쪼개자!!!
제목과 본문을 분리하기
제목과 본문은 빈 줄로 분리해야 한다. 이는 Git의 명령 줄 도구뿐만 아니라 많은 웹 기반 도구들도 이 형식을 사용하므로 중요한 원칙!
제목 줄은 간결하고 명확하게
제목 줄은 가능한 50자 이내로 작성, 큰 변화를 요약하는 것이 좋다. 또한, 제목의 마지막에 마침표를 찍지 않습니다.
제목 줄에 명령문을 사용하기 - 과거시제보다 현재시제로 작성
제목 줄은 명령문으로 작성하는 것이 좋다. ("Add feature" not "Added feature" or "Adds feature"). 이는 많은 Git 도구에서 사용하는 규약
본문에는 "무엇을" "왜" 바꾸었는지 설명하기
본문에는 "무엇을" 변경했는지 보다 "왜" 변경했는지 설명하는 것이 좋습니다. 코드는 "무엇을" 변경했는지를 설명해주지만, "왜" 변경했는지는 코드만으로는 이해하기 어렵기 때문이다.
본문을 72자 정도로 제한하기
Git은 자동으로 메시지를 72자로 줄이지 않으므로, 직접 줄 바꿈을 추가하여 본문의 각 줄이 72자가 넘지 않도록 하는 것이 좋다.
이슈 트래커 ID를 참조하기
관련된 이슈나 버그 트래커 ID를 참조하면, 커밋과 이슈 사이의 관계를 명확하게 할 수 있다.
git commit --amend
명령어를 실행하면 된다..gitignore
파일은 Git에서 특정 파일이나 디렉토리를 버전 관리에서 제외하는 데 사용-> notepad .gitignore
을 통해 gitignore을 열어서 내가 비밀번호를 설정한 password.txt을 gitignore 파일에 추가하면 password.txt는 git status
에 뜨지않게됨