-
버전 : commit : 변경사항
git은 변경사항을 관리하기 위한 도구!
버전은 유의미한 변화가 결과물로 나온 것 (e.g. 버그 삭제, 새로운 기능 추가)
GitHub 원격 저장소 호스팅 서비스
(변경내용확인, 협업, 작업되돌리기)
작성자 이름 입력
Git config —global user.name sangwoorhie
작성자 이메일 입력
git config --global user.email powercom92@naver.com
작성자 이름/이메일 확인
git config -l (소문지L)
pwd 현재 경로 확인하기
절대 경로 : 전체 경로 (최초경로~현재경로)
상대 경로 : 현재 경로를 기준으로 나타낸 경로
현재 경로는 . 으로 나타냄
상위 경로는 .. 으로 나타냄
ls 현재 경로의 파일 및 폴더 조회
ls -al 현재 경로의 숨김 파일 및 폴더까지 모두 조회
숨김 파일 및 폴더 : . 으로 시직함
cd <경로> : <경로>로 이동하기
cd .. 상위 경로로 이동하기
cd . 현재 경로로 이동하기
cd ~ 홈 디렉토리로 이동하기
touch <파일명> : <파일명> 을 이름으로 갖는 파일 생성
cat <파일명>
vi <파일명> <파일명> 편집하기
ex) touch abc.txt
ex) cat abc.txt
ex) vi abc.txt
A 또는 i 입력
Esc 빠져나오기
:w 저장
:q 편집기 종료
:wq 로 활용 가능 (저장후 종료)
rm : remove 파일명삭제
mkdir <디렉토리 이름> : 디렉토리 만들기 (비어있는 폴더)
rmdir : 비어있는 디렉토리 삭제 (비어있어야만 가능)
rm -rf 강제로 지우기 (비어있지 않은 폴더 포함 강제삭제)
Rm : remove
Mkdir <디렉토리 이름> : 디렉토리 만들기
Rmdir : 비어있는 디렉토리 삭제 (비어있어야만 가능)
Rm -rf 강제로 지우기
변경사항 = 버전 = commit (유의미한 변화가 결과물로 나온 것) ex)새기능 추가, 수정, 버그삭제 등
Working tree 작업 디렉토리
: 버전 관리의 대상이 위치하는 공간 (.git이 있는 디렉터리)
Index 스테이지
: 다음 버전이 될 후보가 올라가는 공간
(유의미한 변경사항만 스테이지에 올려 준다 = add)
(유의미한 변경사항이 버전으로 나온 것 = commit)
Repository 저장소
: 로컬 저장소 (내 컴퓨터 속) / 원격 저장소 (인터넷)
버전이 만들어지고 관리되는 공간.
작업디렉토리에
과정 예시
작업 디렉터리 내에서 변경사항 생성
스테이지로 add
저장소로 commit
Git init 로컬 저장소 만들기
Git add <스테이지에 추가할 대상> <> 스테이지에 올리기
Git add . 모든 변경사항 스테이지에 올리기
Git status 작업 디렉터리 상태 확인하기
Git commit -m <커밋 메시지> 커밋 메시지로서 커밋
커밋 메시지 :
제목
(한 줄 띄고)
본문
** 커밋 메시지 잘 작성해야 함!!!
git log 내가 작성한 커밋 목록보기
commit _________ -> 커밋해시 (commit hash)
git log --online
_____
_____
_____ 이렇게 짧은 커밋해시 나옴
git log --p 각각의 커밋이 어떤 변경사항 갖고있는지 보여줌
git diff 내가 최근에 만든 커밋과 현재 작업 디렉토리를 비교해주는 명령어
git diff <커밋> <커밋> = 컷번째 커밋에 비해, 두번째 커밋이 뭐가 달라? 의 의미. 순서가 중요
브랜치
브랜치는 버전의 분기. 관리하는법
브랜치는 독립된 작업환경이기 때문에, 색깔이 다른 커밋들은 서로 영향을 미치지 않는다.
즉, 위에서 분홍색 커밋의 브랜치에서는 파란색 커밋의 내용을 확인할 수 없다.
순서
1.브랜치를 나눈다 2.각자의 브랜치에서 작업한다 3.(필요하다면) 나눈 브랜치를 합친다
장바구니 브랜치와 주문목록 브랜치는 서로 영향을 주지 않는다.
Master Branch (또는 Main Branch) = 최초의 브랜치
git branch : 브랜치 만들기
git branch 명령어
git branch checkout
git branch
HEAD (포인터, 가리킨다)
현재 작업중인 브랜치의 커밋을 가리킴
일반적으로 현재 작업중인 브랜치의 최신 커밋을 가리킴
내가 어디서 작업중인가 알수있음
체크아웃
체크아웃은 HEAD가 브랜치에서 최신커밋을 가리키게 한다.
브랜치 합치기 = 병합한다 merge.
병합
1. 새로운 커밋이 만들어지지 않는 병합 (빨리감기 병합)
그래서 Master브랜치는 빨리감기하듯 foo브랜치에서 추가된 커밋을 추가하면 됨.
빨리감기 병합 (fast-forward merge)라고 함.
git merge foo
2. 병합하는 과정에서 새로운 커밋이 만들어지는 병합
git checkout -b bar 브랜치를 만듦과 동시에 체크아웃
충돌 해결하기 (굉장히 빈번히 발생, 연습필요)
충돌 발생시 파일명 자기멋대로 변경됨.
같은 부분을 다르게 수정했을때 발생함.
같은부분을 다르게 수정하여 충돌발생. B를 반영할지 C를 반영할지 선택해야함.
충돌 발생시 해결방법
1. 어떤 브랜치의 내용을 반영할지 직접 선별 (위의 경우 B를할지 C를할지 직접 선별한다) 나머지는 삭제함.
2. 다시 커밋한다. $ git commit
현재 브랜치 (master) 빼고 나머지는 다 지우고 다시 커밋한다.
'Git > Git' 카테고리의 다른 글
Git 협업 Tip (0) 2023.07.21 Git 명령어 모음 (0) 2023.06.14 Repository의 개념, remote, origin (0) 2023.06.09 GIt 특강 2회 (0) 2023.05.24