[Git & Github] 깃허브로 협업하기

2023. 2. 12. 21:28Git & Github

Step1 . 깃허브에서 소스코드 옳겨오기  / [프로젝트 명]으로 된 디렉토리에 저장하여 관리 

$ git clone <원격저장소주소>
--> $ git clone https://github.com/[계정명]/[프로젝트명].git

협업을 위해서는 원격 저장소에서 로컬 저장소로 가져와야함 . 이를 위해 깃 클론이라는 명령어를 사용 

zip파일로 받아서 사용하지 않고 깃 클론을 굳이 사용하는 이유는 클론을 통해 소스코드를 옯겨와야만, .git(커밋 이력이나 설정 등)이 함께 옮겨지낟. 따라서 그냥 파일을 다운로드 하면 소스코드만 받고 다시 깃허브에 등록을 할 수 없는 상태가 되는거다. 

<실습>

원하는 위치로 이동하고 터미널에서 깃클론을 진행한다.

그리고 확인해 주니 Practice(프로젝트명) 폴더안에 파일이 옮겨졌다. 근데 왜 gitignore은 없는거즤....? 뭐가 잘못된건지 차차 알아봐야 겠다......ㅠ

 

Step2. 다른 브랜치에서 작업하기 

$ git checkout -b <브랜치명>
$ git checkout <브랜치명>

 Working Directory가 Main이 아닌 다른 브랜치를 바라보게 된다. 

-b 라는 옵션을 사용하게 되면 신규 브랜치를 만들면서 바로 그 브랜치로 이동할 수 있게 한다. 

 

git Commit으로 로컬 저장까지 완료하면 이제 메인에 반영해 주어야 하는데, 그전에 git checkout main을 해주어 working Directory가 다시 main을 바라보게 해야한다. 

 

 

Step 3. main 함수에 feature 브랜치 병함하기 

$ git merge <브랜치명>

<merge conflict>

* main에도 commit이 존재하고, feature 에도 commit이 존재할 때,병합할 때 서로 다른 브랜치의 같은 곳에 위치한 코드가 다르다면? 

정상적 병합이 이루어지지 않고 실패함 _ conflict 발생 

<실습>

1) feature1 형성 및 커밋

feature1 브랜치 생성과 동시에 브랜치 위치를 변경했다. 

그리고 feature1 브랜치에서 2번째 줄을 수정한 후 커밋해 주었다. 이제 feature1 에 커밋이 형성됐따.

2) main 커밋 형성

main 브랜치로 다시 이동 한 후, 2번째 줄 수정(feature1과 같은 줄, 다른 내용) 후 커밋

3) 브랜치 병합 

conflict 발생

둘중 하나를 선택하라고 제시함. 

안녕하슈~ 선택 후 저장 , 다시 커밋 진행, 병합. 

+ git push 진행 

수정됨