파일영역의 라이프 사이클
:working directory(git add) =>staging area(git commit)=>repository
파일상태의 라이프 사이클
untractied=>unmodified=>Modified=>staged
전체적인 흐름은 나의 컴퓨터에 깃 저장소를 만들고 저장한후 remote repository에 저장한파일을 올리면됨
특정 파일만 추가하고 싶을때: git add 추가할파일
전체 파일 추가: git add .
추가할파일이 있다면 계속 추가 가능
git status: 어떤파일이 추가되었는지 확인가능
git commit: git 저장소내에 staging 파일 저장
git commit -m "커밋내용"
git commit --ammend
=> 추가한 커밋의 수정이나 누락된파일이 있을경우 수정가능
git log
=>저장소 반영내역 확인
git reset <file_name>
=> 위의 명령을통해 add를 취소 할수 있음
대표적인 log 명령들
git log --stat
git log --pretty=oneline
git log --graph
git log -S functin_name
--stat :어떤파일이 추가되고 삭제, 수정되었는지 확인가능
--pretty=oneline: 각 커밋을 한줄로 출력
--graph: 커밋간의 연결된관계를 아스키그래프로 출력
-S functin_name: 코드에서 추가되거나 제거된 내용중 특정 텍스트가 포함되있는지 검사
GitBranch
:독립적으로 어떤작업을 진행하기위한 개념
각각의 branch는 다른 branch의 영향을 받지않음
메인 Branch
:배포할수 있는 수준의 안정적인 Branch
토픽 Branch
:기능추가나 버그 수정과 같은 단위작업을 위한 Branch
Branch 생성 명령어
: git branch <생성할 브랜치 이름>
현재의 Branch는 아래의 명령어로 확인가능
: git branch
Branch 전환 명령어
:git checkout <브랜치 이름>
git log로 확인한 스냅샷을 넘나들때도 사용가능
git checkout
예시명령어
: git checkout --pretty=oneline
스냅샷의 hash값을 이용하여 과거의 파일내용을 알수 있다.
Git Merge
=> 작업브랜치에서 작업을 끝마치고 메인 브랜치로 통합
git checkout <메인브랜치명>
git merge <작업한 브랜치명>
이렇게 Merge가 이루어지는것을 fast-forward라함
원격저장소란? 인터넷이나 네트워크 어딘가에 있는장소
원격저장소 받아오기
:기존의 git repository 복사
git clone <repository 주소>
원격저장소 연결
: git remote origin add <repository 주소>
여기서 origin은 저장소의 이름! 처음세팅할때 이름설정을 안하면 기본적으로 origin으로 부여됨
연결된 원격저장소 확인
: git remote
git remote show origin
원격저장소 삭제
:git remote rm git_test
pull
원격저장소에서 데이터 가져오기 +병합
주의점: 진행중인 작업을 마무리하고 병합해야됨
Fetch
원격저장소에서 데이터 가져오기
저장소 발행
git push origin <브랜치 이름>
요약1. git remote add origin (또는다른원격저장소이름)으로로컬저장소와연결합니다.
2. git fetch 또는git pull 을이용하여원격저장소의내용을동기화합니다.
3.fetch를실행한경우git mergeorigin(또는mast 로병합을완료해줍니다.
4.gitpushoriginmaster를이용하여변경된사항을원격저장소에전달해줍니다.
출처: 앨리스코딩 수업