프로젝트에서 여러 명이 동시에 작업한다면, 누가 어떤 코드를 반영한 것인지 알 수 있어야 한다.
따라서 작업을 시작하기 전에 내가 누구인지 이름과 이메일을 설정한다.
git config --global user.name "LeeJinIe" //git관련 작업 기록에 남는 이름 수정
git config --global user.email "jj0745@naver.com" //git관련 작업 기록에 남는 이메일 수정
git config --list //git 설정 확인
로컬 디렉토리 안에 git repository를 생성하는 방법
여기서 git repository는 .git
파일이다.
git init
git init ./폴더이름/폴더이름
git repository에 반영하기 전에 파일을 저장소에 먼저 올려야 한다.
git add newfile.js //newfile.js 파일을 준비 영역으로 보낸다
git add . //모든 파일을 준비 영역으로 보낸다.
git reset //staging 된 파일을 준비 영역에서 삭제
git status //Staging area 의 어떤 파일이 변경되었는지 등 파일의 상태를 확인할 수 있다.
staging된 파일들이 무엇이 수정, 추가되었는지 메시지를 남겨 저장소에 저장하는 작업
git commit //.git 저장소 내에 staging 파일 저장
git commit -m "commit message" // 메시지를 추가하여 저장소에 반영
git commit --amend // 텍스트 편집기가 실행되고, 수정하고 저장하면 저장소에 반영
// amend 뒤에 직접 메시지 작성도 가능
git log // 모든 커밋 내용 확인 가능
git log --pretty=oneline // 각 commit을 한 줄로 출력
git log --graph //commit 간의 연결된 관계를 아스키 그래프로 출력(branch에서 유용)
git diff //commit 된 파일 중 변경된 사항을 비교
독립적으로 어떤 작업을 진행하기 위한 개념
종류
git branch [Name]
git branch
git checkout [전환할 브랜치 이름]
main(master) branch로 통합할 때,
git checkout master
git merge [my_branch]
타겟 브랜치에서만 새로운 내용을 추가했을 때 메인 브랜치와 곧바로 병합
즉, 단순히 포인터가 최신 커밋으로 이동한다.
각 브랜치가 가리키는 커밋 두 개와 공통 조상 하나를 사용
EX)
git checkout master
git merge iss53
git branch --merged // marge된 branch들 출력
merge한 두 branch에서 같은 파일을 변경했을 때 충돌이 발생한다 → 직접 수정해야 함
git status
에서 어느 파일에서 충돌했는지 both modified : file name 으로 확인git add
→ git commit
→ merge
다시 한다.방지
main branch의 변화를 지속적으로 가져와서 충돌이 발생하는 부분을 제거
사용이 끝난 토픽 브랜치는 삭제를 하는 것이 일반적이다.
git branch -d [my_branch]
참고 및 사진 출처