티스토리 뷰

버전 관리가 무슨 의미인가요?

- 프로젝트 상태가 변경되는 정보를 알고 있다는 것이다. Git은 commit을 사용해서 버전이 달라지는 것을 관리한다. 

 

어떤 순서로 진행해야 하나요? 

1. 로컬에 있는 내 프로젝트를 sourcetree를 통해 git init(깃 초기화)시켜줍니다. 

*깃 초기화(내 프로젝트를  git프로젝트로 설정하는 것)

  • sourcetree로 깃 초기화하는 방법:  create-> create a repository에서 내가 만든 파일 경로 탐색해서 붙여줌 생성 
  • 생성을 누르면 관련 메세지가 뜨는데 yes 하면 된다.

내부에 .git이라는 숨김파일이 생기면 잘 완료된 것입니다. 

2. commit 할 파일들을 add(staging) 하고 commit 메시지 작성해서 commit하면 된다. 

  • 윈도우의 경우 add는  하단에 있는 변경사항이 있는 파일의 우측에 + 버튼으로 올리면되고 되돌리고 싶다면 -버튼으로 다시 내리면 된다. +버튼으로 상단으로 파일을 올리는 것을 스테이징 혹은 애드라고 하는데 이제 올라간 파일에 어떤 기능을 변경했는지 commit 메세지를 작성해서 왼쪽에 있는 commit버튼을 눌러주면 된다.

원격 repo로컬 repo ?

(발음을 보니 레포지토리가 아니라 리포지토리네요.)

  • git으로 관리되는 프로젝트를 Git에서는 repo(리포, repository 저장소)라고 부른다. 
  • 내 컴퓨터에 저장되어있는 레포지토리를 로컬 repo라고 한다. Github처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것을 원격 repo(remote repository)라고 한다. 
  • Github은 원격 repo 가 저장되어있고 + 개발자 커뮤니티 기능을 하는 서비스이다. Github을 사용해서 원격 repo를 만들고 관리하자
  • 로컬 repo와 원격 repo를 연결하는 것트래킹(추적한다, 정확히는 branch tracking)이라고 표현합니다. 
🐱‍👤왜 branch tracking
로컬 repo와 원격 repo의 commit들을 트래킹하는 것이 아니라 특정 브랜치로 연결해주기 때문이다.
결국 Push와 Pull은 기본적으로 트래킹되고 있는 브랜치를 기준으로 커밋내역을 반영하는 것입니다. 

✔  원격 repo사용하기 

- 기존에 만들어뒀던 로컬 repo를 원격 repo로 올려보자. (push)

  1. github에 repo를 만들어줍니다. repo name은 다르게해줄 수 있지만 보통 헷갈리지 않게 로컬 repo명과 동일하게 만들어줍니다. Description에 해당 프로젝트에 대한 설명을 써줍니다. 
  2. Tracking하기 - Github에 있는 repo와 내 컴퓨터에 만들어놓은 repo연결하기 
    • 방금 만든 Github에 있는 repo와 내 컴퓨터에 저장되어 있는 로컬 repo를 연결하면 로컬 repo의 commit들과 원격 repo commit들을 쉽게 동기화 시킬 수 있습니다.
    • 주의)이전에 변경되지 않은 커밋내역이 남아있다면 커밋 완료 해주시고 연결해야 합니다. (에러날 수 있음)
    • 파일 상태가 클린한 화면에서 우측 상단에 설정 -> 원격 -> 추가를 누르면 아래 처럼 원격 저장소 정보가 보입니다.

  • 원격 이름: origin 
  • URL : 원격 repo URL(github에서 주소를 복사해서 붙여넣기하면 됩니다.)
  • 호스트 종류, 사용자 명은 URL을 붙여넣으면 자동으로 채워집니다.

이 다음으로 설정-> 원격에 다시 보면 내가 추가한 원격repo가 보입니다. 

마지막으로 master 로 돼있는 브랜치명을 main으로 변경해주면 완료입니다. 

 

sourcetree로 Push 하기 

*push : 로컬 repo의 commit들을 원격 repo에 반영하는 것

 

  • 왼쪽에 History or main 브랜치 선택 후, 상단에 Push 버튼을 누릅니다. 
  • 푸시? 아래에 있는 체크박스에 체크를 하고 확인 누르면 됩니다. 

이렇게 되면 반영이 완료된 것입니다. *origin은 로컬 repo를 뜻합니다.

원격 repo에도 잘 반영되었는 지 github에 들어가서 확인해봅니다. 

 

sourcetree로 Pull 하기

*pull : 원격 repo의 commit들을 로컬 repo로 반영하는 것

  • 우선 내 원격 repo에 있는 커밋에 변경사항을 하나 만들어줍니다. (원격 repo의 내용을 로컬 repo로 가져오는 것이 pull이니까)
  • 내 깃허브 레포에 있는 파일 중 아무거나 하나를 선택하여 Edit file을 해준 뒤 내용을 수정해주고 하단에 commit 메세지를 작성해줍니다. 완료했다면 commit changes 버튼을 눌러 하나의 커밋을 만들어줍니다. 
  • 원격 repo에서 업데이트한 내용이기 때문에 반영하기 전에는 로컬 repo는 해당 내용이 업데이트 됐는 지 알 수 없습니다. (push와 pull은 수동으로 commit내역을 반영하기 때문입니다.)
  • 이제 sourcetree로 가서 상단의 pull 버튼을 눌러줍니다. 

  • sourcetree가 똑똑하게도 Pull 해야 할 내역을 표시하고 있네요. (처음 알았음)

  • Pull 버튼을 누르고 위에 보이는 두 가지 옵션을 체크 후 Pull로 로컬 repo에 변경된 내용을 가져와 반영시킵니다. 

✔ github 초심자 패턴

혼자 Git 프로젝트 작업할 때는 Pull -> 로컬 repo commit -> Push 순서로 하면 좋다. 

원격 repo와 로컬 repo에서 같은 파일을 수정하면 Git이 같은 파일을 수정했는데 어떤 파일을 최종으로 할까? 라고 확인 메세지를 줍니다. 이런 것을 바로 conflict(충돌)이라고 표현한다. -> 위의 패턴(풀 - 커밋 - 푸시)으로 작업하면 충돌을 줄일 수 있다.

 

sourcetree로 Clone 하기

*clone : 원격 repo를 내 컴퓨터에 가져와서 초기 repo세팅하는 것

 

1. 우선 내 컴퓨터에 clone할 프로젝트와 같은 명의 폴더를 만들어줍니다. (안 만들어도 됩니다. 기본 설정은 Documents 밑에 폴더가 생기기 때문에.. 하지만 내가 해당 폴더를 찾기 번거롭다면 원하는 장소에 만들어서 거기로 프로젝트를 바당오는 것이 좋겠죠)

2. sourcetree의 상단 + 버튼을 통해 새탭을 만들고 clone버튼을 눌러줍니다. 

  • 소스경로 : 내가 클론할 프로젝트의 url 
  • 목적지 경로 : url을 넣으면 자동으로 documents 하위 폴더로 지정돼있지만 다른 곳으로 받아오고 싶다면 오른쪽 탐색 버튼을 통해 내가 만들어놓은 폴더로 지정하면 됩니다.  
  • 이름 : 클론한 repo명과 동일 (자동으로 채워집니다.) // 굳이 구분을 위해서 다르게 작성해야하는 경우가 아니라면 같게하는 것이 일반적

3. 제대로 클론됐는 지 확인하기 위해서 만들어놓은 로컬 repo로 가서 확인해봅니다. 

댓글