티스토리 뷰
1. 브랜치 관리
1.1 브랜치 연결
처음에 디렉토리 생성 후, remote repository와 local repository를 연결해야 한다.
만약 연결없이 git 사용 시, fatal: not a git repository (or any of the parent directories): .git 를 보게 된다....
1) git init - .git 생성 및 추적 시작
2) git remote add origin git@github.com:<user name>/<target repository name>.git - local에 remote 추가
3) git branch -M main - 기본 브랜치명 master -> main
4) 연결할 파일 생성 후 git add <파일명>
5) git commit -m "connect git remote repository"
6) git push origin -u origin main 를 통해 연결을 완료하자!
1.2 remote에서 작업물 가져오기
1) git fetch -p - remote의 branch를 local로 가져옴(병합은 x)
1-1) git merge <브랜치명> - 가져온 작업 내용을 로컬 작업 내용에 병합
1-2) 만약 첫 or 작업 내용 없다면 git pull origin main 으로 바로 작업 내용을 적용까지 한다.
1.3 브랜치 생성 및 관리
- git branch -a : remote, local에서 생성된 브랜치를 확인
- git checkout <브랜치명> : 브랜치 이동
- git chechout -b <새 브랜치명> : 브랜치 생성 및 이동
- git branch -d <브랜치명> : local 브랜치 삭제(푸시 되지 않은 커밋 x)
- git branch -D <브랜치명> : local 브랜치 삭제(푸시 되지 않은 커밋이 있어도 무시)
- git push <name> -d <브랜치명> : <name> remote repository의 브랜치 삭제
2. Statging Area 관리
2.1 Staging Area에 추가
- Staging Area : 커밋되기 전 준비 상태 - 커밋 시, 해당에 존재하는 파일이 업로드 된다.
- git add : 모든 파일을 Staging Area에 올린다.
- git add <파일명> : 해당 파일은 Staging Area에 올린다.
2.2 Statging Area에서 제외
>> 제외(수정 내역 유지)
- git reset : Staging Area에 대기중인 수정 사항을 모두 제거, 수정 내용은 유지
- git reset <파일명> : Staging Area에 대기중인 해당 수정 사항을 제거, 수정 내용은 유지
- git restore --staged <파일명> : Staging Area에 대기중인 해당 수정 사항을 제거, 수정 내용은 유지
>> 제외(수정 내역도 롤백)
- git reset --hard <파일명> : Staging Area에 대기중인 해당 수정 사항을 제거, 수정 내용도 폐기(되돌리기 X)
- git restore --source=HEAD <파일명> : Staging Area에 대기중인 해당 수정 사항을 제거, 수정 내용도 폐기(되돌리기 X)
2.2-1 git restore
- --staged 옵션 사용 시
: 삭제할 파일의 이전 상태 = Unstaged 에서 대기 : Staging Area 에서 → Unstaged 로 이동
: 수정된 파일의 이전 상태 = Unstaged 에서 대기 : Staging Area 에서 → Unstaged 로 이동
: 추가된 파일의 이전 상태 = Untracked : Staging Area 에서 → Untracked 로 이동 - --staged 옵션 사용 X시
: 삭제할 파일의 이전 상태 = 미삭제(존재) : Unstaged 에서 → 기존 Git 이 추적하던 파일 존재
: 수정된 파일의 이전 상태 = 미수정 : Unstaged 에서 → 기존 Git 이 추적하던 파일의 이전 상태
2.3 Statging Area에서 제외 및 임시 보관 관리
>> 제외 및 임시 보관
- git stash : git add를 통해 Staging Area에 대기중인 수정 사항을 임시 저장소에 보관
- git stash pop : stash 보관소의 가장 최신 변경 사항을 꺼내 반영(Stack구조, FILO)
- git stash apply : stash 보관소의 가장 최신 변경 사항을 반영, stach 보관소에 내용은 유지(Stack구조, FILO)
>> 보관 내역 조회 및 관리
- git stash list : shash 보관소의 저장 내역 조회
- git stash show stash@{0} : shash 보관소의 특정 내역 확인
- git stash drop stash@{0} : shash 보관소의 특정 내역 삭제
- git stash clear : shash 보관소의 저장 내역 모두 삭제
참조
ASAC 수업자료
https://gmlwjd9405.github.io/2018/05/18/git-stash.html
'정리용 > git' 카테고리의 다른 글
[git] branch 관리 - 4 : Zone 구성 및 브랜치 전략 (2) | 2024.12.27 |
---|---|
[git] branch 관리 - 3 : 커밋 관리 (0) | 2024.12.26 |
[git] 충돌(conflict) (0) | 2024.12.24 |
[git] HEAD: 커밋 추적 포인터 (0) | 2024.12.24 |
[git] remote repository 관리 - 1 (0) | 2024.12.24 |