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 할 수 있다.