이 글은 24.01.30에 본인 벨로그에 작성했던 글을 옮겨 온 것이다.
Remote Repository(이하 repo) 명령어
- Local repo에 Remote repo 추가
가장 중요한 repo를 등록할 때엔 origin이라는 이름을 써 주자.
- Remote repo 주소 수정
- Remote repo 이름 수정
- Remote repo 삭제
- Remote repo 정보 확인
주의사항. 정보 확인 시 토큰 정보도 확인할 수 있다
=> 누구나 접속할 수 있는 PC의 remote repo에 토큰을 입력해 두면 누구나 내 토큰 정보를 확인할 수 있게 되는 것! 보안에 취약할 수 있으니 주의하자.
- Remote repo 상세 확인
- Pull
- Push
실습
Local repo -> Remote repo
아래와 같은 상황을 가정해서 직접 해보자!
Local repo에서 작업을 하다가, 해당 작업 내용을 Remote repo에 올리고 싶은 경우
(Remote repo를 바로 local로 clone 해 오는 것과는 다르다!)
1. Local repo 생성(local_project)
=> git init
2. Local repo의 작업물을 올릴 "빈 Remote repo" 생성
=> Local repo가 먼저 만들어진 상태에서 Remote repo에 연동하려면, Remote repo에 아무것도 없이 비어 있어야 한다(README, gitignore 등 아무것도 없어야 함)
3. Local repo에 Remote repo 추가 및 확인
=> git remote add repo_name repo_url
=> git remote -v
4. Remote repo 이름 변경 후 확인
=> git remote rename old_name new_name
=> git remote -v
5. Local repo의 작업을 Remote repo에 Push하기
=> README.md 파일 생성 후 커밋
=> 커밋 내용을 Remote repo로 push(git push)
Remote repo -> Local repo
아래와 같은 상황을 가정해, 직접 해 보자!
Remote repo의 작업물을 Local repo로 가져오기
1. Remote repo 생성
2. Remote repo를 Local repo로 가져오기(연동하기)
=> git clone remote_repo_url
README.md 파일이 들어갔다. 잘 연동되었음을 확인할 수 있다.
보면 알겠지만, Remote repo를 Local로 연동해 온 후에 작업하는게(local의 버전을 push 한다던가...) 더 편하다.
Checkout and Branch
Checkout
- 특정 버전(시점)으로 HEAD를 이동시키는 것.
=> Commit id의 버전 상태로 본인의 작업폴더가 바뀜
=> 해당 버전의 코드를 볼 수도 있고, 해당 버전에서 작업을 시작할 수도 있음
checkout을 하려면 커밋 id를 알아야 한다.
=> log를 확인하면 알 수 있다.
=> commit 앞의 문자열이 버전을 구분하는 커밋 id이다. 앞의 7자리만 사용해도 OK(--oneline)
- Checkout을 하면 어떻게 되는가??
Git Branch
- 개발을 하다 보면, 한 코드를 여러개로 복사해서 사용해야 하는 경우가 잦다. 이런 경우엔 개발 후 원래 코드와 병합을 해야 하는데... 이럴 때 쓰일 수 있는 것이 Git Branch이다.
- Git Branch
- local branch 목록 확인/생성/삭제
주의사항 : branch는 HEAD의 위치에 생성된다.- remote branch 목록 확인/삭제
- 모든 branch 목록 확인
- local branch를 remote repo에 배포
- branch 간 이동(checkout)
Merge and Conflict
Git Merge
- 현재 위치한(HEAD) 버전에 다른 버전을 병합하는 것
=> Branch를 병합하거나 Push, Pull 할 때도 발생하는 작업이다.
Conflict
- 두 Branch에서 같은 버전의 부분을 수정하는 경우, Auto Merge가 불가능하다.
이런 경우에 발생하는 문제상황을 말한다.- Conflict가 발생한 파일은 아래와 같이 표기된다.
- Conflict 해결 과정
- 파일 수정
- git add
- git commit
- Push, Pull 중에 Conflict가 발생하면?
- Puch 중 Conflict
=> Push 실패
=> Pull을 통해 Conflict를 확인할 수 있음- Pull 중 Conflict
=> Fetch만 되고 Merge는 실패한 상태의 Conflict가 발생
=> Conflict를 해결하면 자동으로 Merge 됨.
즉, Push 전에 항상 Pull을 하는 습관을 들이도록 하자!
Git Tag
- 특정 버전에 tag를 달아놓을 필요가 있을 때에 사용 (ex. version release)
=> 해당 tag로 checkout 할 수 있다.
- tag 생성하기
=> HEAD의 위치에 생성됨.- tag 목록 보기
- 특정 버전에 tag 달기
- remote repo에 tag 배포하기
- tag 상세 보기
- local tag 삭제하기
- remote tag 삭제하기
'STUDY > 기타 IT' 카테고리의 다른 글
[Git] VCS(Version Control System) / Git (2) | 2024.03.19 |
---|---|
[Github] Repository에 파일, 프로젝트 올리기 (2) | 2024.01.02 |
[Tool] - ERD 생성 사이트 (0) | 2023.12.26 |
[Github] New Repository 만들기 (4) | 2023.12.22 |