728x90

이번에 소개할 내용은 서로 다른 PC에서 하나의 git repository를 활용하는 방법입니다. 

 

편의상 PC1, PC2로 지칭하고 진행하겠습니다. 

PC1에서 프로젝트를 작성하고 commit, push를 마친 상황이고 PC2에서 해당 프로젝트를 가져오는 상황입니다. 

 

PC2에서 IntelliJ를 실행합니다. (IntelliJ에는 GitHub 로그인이 완료된 상태이어야 합니다.)

 

메뉴에서 File-New-Project From Version Control을 클릭합니다. 

 

다음 화면에서 가져오려는 repository를 선택해줍니다. 하단에는 가져오는 경로가 보이며 따로 폴더를 지정할 수도 있습니다. Clone 버튼을 클릭합니다. 

 

프로젝트를 잘 가져온 것을 확인할 수 있습니다. 

 

PC2에서 추가로 작업을 진행한 뒤 commit, push를 진행합니다. 

 

commit할 파일을 선택하고 commit 메시지를 작성합니다. 

 

commit, push를 진행합니다. 

 

 

다음은 PC1에서 PC2에서 진행한 내용을 반영하는 부분입니다. 

하단의 Git 탭에서 main 브랜치에서 우클릭 후 update를 클릭합니다. 

 

그러면 pull이 진행되면서 PC2에서 commit한 내용이 반영된 것을 확인할 수 있습니다. 

 

이후에는 

PC1에서 작업 후 commit, push -> PC2에서는 update 후 작업을 진행하고 commit, push 순서로 계속 진행하면 됩니다. 

 

주의할 부분은 로컬에 저장만하고 push를 하게 되면 코드가 꼬이는 순간이 오게 되니 순서를 반드시 잘 지켜서 활용하시기 바랍니다. 

728x90
728x90

git 설치하는 과정은 어렵지 않습니다. 

다만 main 또는 master 브랜치로 세팅되는 설정이 중간에 있는데 요즘은 master 대신 main으로 하고 있는 추세라 그 부분만 주의 한다면 쉽게 설치가 가능합니다. (master로 했다고 해도 main으로 변경할 수 있으니 크게 걱정하지 않아도 됩니다.)

 

설치하는 과정을 캡쳐 화면으로 나열하였습니다. 2023년 11월 기준이라 시간이 지나면 조금 다를 수는 있습니다. 

 

git 홈페이지에 접속하여 설치 파일을 다운 받습니다. 

https://git-scm.com/download/win

 

Git - Downloading Package

Download for Windows Click here to download the latest (2.43.0) 32-bit version of Git for Windows. This is the most recent maintained build. It was released 9 days ago, on 2023-11-20. Other Git for Windows downloads Standalone Installer 32-bit Git for Wind

git-scm.com

OS 에 맞게 받으면 되고, Windows 64 bit 버전을 다운 받습니다. 

 

설치파일을 실행했을 때의 화면입니다. 

 

 

 

 

 

여기까지는 next로 계속 진행해도 되고 다음 단계에서는 주의할 부분이 있습니다.

기본 브랜치를 설정하는 단계인데, 기본은 master로 되어 있고 main으로 설정하려면 아래 항목을 선택해야 합니다. 

 

다음부터는 계속해서 Next로 넘어가도 됩니다. 

 

 

 

설치가 진행되는 모습입니다. 

 

설치가 완료된 화면입니다. 

 

cmd에서 아래와 같이 설치확인을 할 수 있습니다. 

명령어: git --version

 

git 설치 후 commit, push하는 과정은 다음 글에서 소개하고 있으니 참고해주세요. 

git 초기 세팅 및 commit, push 하기 :: 코딩레시피 (tistory.com)

 

git 초기 세팅 및 commit, push 하기

git 설치 후 PC(local)에서 작성한 내용을 github에 push하는 과정입니다. 먼저 사용자 설정을 해줘야 합니다. 본인 github username, email 입력하는 방법입니다. username 입력 >> git config --global user.name '본인의

codingrecipe1.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

git 설치 후 PC(local)에서 작성한 내용을 github에 push하는 과정입니다. 

 

git 설치 과정은 다음 글을 참고해주세요. 

git 설치하기 :: 코딩레시피 (tistory.com)

 

git 설치하기

git 설치하는 과정은 어렵지 않습니다. 다만 main 또는 master 브랜치로 세팅되는 설정이 중간에 있는데 요즘은 master 대신 main으로 하고 있는 추세라 그 부분만 주의 한다면 쉽게 설치가 가능합니다.

codingrecipe1.tistory.com

 

먼저 사용자 설정을 해줘야 합니다. 

 

본인 github username, email 입력하는 방법입니다. 

 

username 입력

>> git config --global user.name '본인의 github 사용자이름'

 

email 입력

>> git config --global user.email '본인의 github email 계정'

 

모두 입력 후 

>> git config --global --list 실행해서 입력한 내용이 출력되는지 확인

 

PC에서 작업한 내용을 github에 올리는 과정은 다음과 같습니다. 

 

1. github에 올리고자 하는 폴더를 git 폴더로 지정하기 

2. 파일을 stage에 등록하기 

3. commit하기 

4. remote(github에서 만든 repository) 연결하기 

5. push하기 

6. github에서 확인 

 

1. github에 올리고자 하는 폴더를 git 폴더로 지정하기 

git init 명령어를 이용하여 현재 폴더를 git 폴더로 지정합니다. 반드시 올리고자 하는 폴더에서 명령어를 실행해줘야 합니다.

 

2. 파일을 stage에 등록하기 

특정파일만 올릴수도 있고 전체를 올릴수도 있는데 전체파일을 올리는 내용으로 진행하였습니다. 

git add . 명령어를 실행하여 전체 파일을 stage에 등록합니다.(add 와 . 사이에 공백을 반드시 줘야 합니다.)

 

3. commit하기 

commit 명령어 실행을 통해 버전을 기록합니다. 

commit 메시지는 "" 안에 작성합니다.

 

4. remote(github에서 만든 repository) 연결하기 

먼저 github에서 repository를 새로 만듭니다. 그리고 아래와 같은 명령어를 사용하여 원격저장소(remote)를 연결해줍니다. 

>> git remote add origin 'remote 주소'

 

 

5. push하기 

push 명령어를 이용하여 remote에 push를 합니다.

 

현재 PC에서 사용이 처음이라면 인증 절차를 거치게 되는데 push 명령어를 실행하면 아래와 같은 팝업이 뜹니다. 

github 계정에 로그인을 하고 인증을 처리해주면 push가 진행됩니다. 

로그인을 요청하는 팝업
인증이 완료된 화면

 

6. github에서 확인 

github repository에 접속하면 코드가 잘 올라가 있는 것을 확인할 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

git organization으로 협업을 할 때 push 명령을 실행하면 계속 로그인을 물어볼 수가 있습니다. 

이럴 때에는 다음과 같이 옵션을 체크해주시면 해결 가능합니다. 

 

IntelliJ 설정 메뉴에 들어갑니다. 

 

하단 부분에 Version Control 메뉴를 열고 Git 을 클릭합니다. 

 

제일 하단에 아래 그림과 같이 Use credential helper 체크를 해주면 push가 정상적으로 되는 것을 확인할 수 있습니다. 

728x90
728x90

이번에는 두사람이 동시에 같은 파일을 작업하여 push 한 경우를 살펴보도록 하겠습니다. 

HomeController 메서드를 동시에 작업했다고 가정하겠습니다. 

 

userA는 branch를 만들고 help 메서드를 추가하고 commit, push를 합니다. 

 

Github에서 PR을 작성합니다. 

현재까지는 충돌될 상황이 아니기 때문에 정상적으로 merge 됩니다. 

 

merge도 진행합니다. 

 

 

userB도 branch를 만들고 contact 메서드를 추가하고 commit, push를 합니다. 

 

userB도 Github에서 PR을 작성합니다. 

두 사람이 동시에 같은 파일을 작업했기 때문에 PR이 정상적으로 수행되지 않고 충돌을 해결하라는 메시지가 보입니다. 

 

이렇게 충돌이 발생하면 팀원은 알아서 해결하기 보다는 팀장에게 알려 수습을 할 수 있도록 하는 것이 좋습니다. 

 

팀장은 Github의 PR 탭을 클릭하여 해당 충돌 페이지로 진입합니다. 

Resolve conflicts를 클릭해봅니다. 충돌이 발생한 부분을 <<<< ===== >>>> 로 보여주고 있습니다. 

해당 기호를 지우고 충돌 코드 등을 해결하기 위해 현재 페이지에서 작업을 진행합니다.

우측 상단의 Mark as resolved 버튼이 완료 버튼인데 현재는 수정을 하지 않았기 때문에 비활성화 되어 있습니다. 

코드를 수정하고 <<<< ===== >>>>를 모두 지우면 Mark as resolved 버튼이 활성화됩니다. 

이제 merge를 수행할 수 있습니다. 아래 화면에서 Commit merge를 클릭합니다. 

 

그러면 정상적으로 PR을 수행했을 때의 화면으로 나옵니다. 아래와 같은 화면에서 merge를 수행합니다. 

정상적으로 merge가 되었습니다. 

 

로컬에서 main branch를 update해보면 HomeController가 정상적으로 작성된 것을 확인할 수 있습니다. 

 

이상으로 Git으로 팀프로젝트를 진행할 때 활용하면 좋을 내용에 대해 소개해드렸습니다. 

팀프로젝트에서 git을 사용할 때는 워낙 변수가 많아서 모두 다룰 수는 없지만 각자 필요한 절차만 잘 지켜서 진행한다면 최소한의 문제로 즐거운 코딩이 되지 않을까 생각합니다. 

 

감사합니다^^

728x90
728x90

두 명의 팀원이 동시에 각자의 코드를 개발하는 상황에 대해 소개하도록 하겠습니다. 

각자 개발을 하고 완료한 뒤 PR(Pull Request)를 작성하는 상황입니다. 

 

팀장인 팀원 A는 게시판 서비스를 개발하고 팀원 B는 회원 서비스를 개발하고 있다고 하겠습니다. 

코드 설명은 따로 하지 않고 코드 몇줄만 작성합니다. 

 

작업을 시작하기 전 main branch를 업데이트하고 작업할 branch를 만들어서 작업을 해야 합니다. (늘 중요한 과정입니다.) 팀장이라고 해도 main에서 작업하지 않도록 합니다. 

 

팀원 A가 userA_board라는 branch를 만들고 BoardController, BoardService 클래스를 만들었습니다. 해당 내용을 commit, push 합니다. (commit 후 매번 push할 필요는 없습니다.)

commit 할 때 Commit to branch이름 인지 꼭 확인하셔야 합니다. Commit to main이라고 써 있으면 현재 main branch에서 작업하고 있는겁니다..

commit, push 완료 후 github에 들어가서 PR을 작성해줍니다. (PR 작성은 이전 글을 참고해주세요.)PR을 완료한 화면입니다. 

 

팀원 A가 게시판 작업을 하는 동안 팀원 B도 본인의 작업을 진행하고 있습니다. 

팀원 A의 코드는 작성이 완료되었기 때문에 코드 병합을 진행합니다. 

 

팀원 B는 main 코드는 병합되었지만 본인 작업을 계속 수행합니다. 

MemberController 메서드 추가, MemberService 클래스 추가를 하고 commit, push를 합니다. 

 

github에서 PR을 작성합니다. 

 

팀장은 userB의 코드를 병합합니다. 

모두 병합되어 commit history에 내역이 보입니다. 

 

 

main branch가 모두 병합되었고, 각자의 로컬에서 main branch Update를 수행하고 이어서 개발을 진행하면 됩니다. 

IntelliJ에서 Update후 main branch를 살펴보면 모든 history를 확인할 수 있습니다. 

 

다음 글에서는 두사람이 동시에 하나의 파일을 작업하는 경우에 대해서 소개하도록 하겠습니다. 

 

 

 

 

728x90
728x90

이전 두 개의 글을 통해서 Organization을 만들고 repository를 만들고 clone하는 내용을 소개해 드렸습니다. 

이번 글에서는 팀장 및 팀원이 각자의 코드를 작성하고 github에 공유하는 방법에 대한 내용을 소개하려고 합니다. 

 

꼭 기억할 부분은 팀장이든 팀원이든 절대 main(또는 master) branch에서 작업을 하지 않아야 한다는 겁니다. 반드시 기능 개발할 때 branch를 새로 만들고 push를 하고 팀장은 해당 branch를 main으로 합치고 다시 pull을 받아 진행하는 방법이 가장 무난하다고 볼 수 있습니다. 주요 단계를 요약하자면 다음과 같습니다. 

1. 팀원들은 각자의 로컬에서 branch를 만들어서 작업

2. 기능개발이 완료되면 해당 branch를 push 

3. github에서 pull request 작성하고 팀장에게 알림 

4. 팀장은 해당 commit의 충돌 문제는 없는지 확인한 뒤 pull request 수행하여 main branch에 코드 병합 

5. push를 완료한 팀원만 pull 수행하여 main branch 최신화

(push를 하지 않은 팀원은 main branch가 최신화 됐다고 하여 pull 할 필요가 없습니다. 여기서 pull 하면 열심히 작성한 코드 good bye..)

6. pull이 문제없이 진행된 팀원은 새로운 branch 만들어서 개발 진행 

1~5번 작업이 계속 반복 됩니다. 

 

팀원이 본인의 로컬에서 회원 기능을 개발한다고 하겠습니다. 

코드 개발 전 branch를 추가합니다. 

branch는 하단의 Git 탭에서 main 에서 우클릭 후 New Branch from 'main'을 클릭합니다.

branch이름을 자유롭게 작성합니다. Checkout branch를 체크해 놓으면 자동으로 branch를 생성하면서 전환됩니다. 

branch 생성 후 화면입니다. 

 

개발을 시작합니다. 

간단하게 MemberController만 추가합니다. 

 

기능 개발이 끝났다 가정하고 commit, push를 수행합니다. IntelliJ의 git 기능을 활용합니다. (Commit시 상단에 Commit to 'branch 이름' 을 확인하시기 바랍니다. main으로 되어있다면 branch를 만들어야 합니다.)

 

push 완료 후 github에 접속하여 Pull Request를 작성합니다. Pull requests 탭을 클릭하고 New pull request 버튼을 클릭합니다. 

 

그러면 방금 전 push한 branch가 목록에 보이게 됩니다. 해당 branch를 클릭합니다. 

 

다음 화면에서 Create pull request를 클릭해줍니다. 

 

특이사항이 있다면 내용을 작성하고 Create pull request를 클릭합니다.

 

pull request 완료 화면입니다. 

 

지금부터는 팀장역할을 하는 사람이 해야하는 내용입니다. 

Pull requests 탭을 클릭해보면 조금 전 팀원이 작성한 PR(pull request) 이 보입니다. 해당 PR을 클릭합니다.

 

 Merge pull request를 클릭하면 코드를 병합할 수 있습니다. 버튼을 클릭합니다. 

 

아래와 같은 화면이 나오며, Confirm merge 를 클릭합니다. 

 

문제가 없다면 아래와 같이 성공했다는 내용이 보이며, Delete branch를 클릭하여 해당 branch를 삭제해 줍니다. 

 

첫 화면으로 돌아와보면 해당 commit이 함께 보이는 것을 확인할 수 있습니다. 

 

push를 조금 전 했던 팀원은 병합된 main branch 내용을 본인의 로컬에 적용하도록 합니다. 

main branch에서 우클릭 후 checkout을 합니다. 

 

checkout 후 다시 main에서 우클릭하여 update를 클릭하여 pull을 해줍니다. 

 

pull 이 잘 수행된 것을 확인할 수가 있습니다. 

 

 

다음 글에서는 두 사람이 작업했을 때의 상황에 대해 소개해드리도록 하겠습니다. 

728x90
728x90

이전 글에 이어서 repository를 만들고 공동 작업하는 내용입니다. 

 

팀장은 Repositories 탭을 클릭하여 새로운 repository를 생성합니다. 

저장소 이름을 작성하고 공개범위는 private을 선택하여도 팀원은 볼 수가 있습니다. 

repository 생성 완료 화면에서 Manage access 클릭하여 권한 관리 화면으로 들어갑니다. 

Add people을 클릭하여 팀원 추가를 해줍니다. 

추가 방법은 똑같이 github의 username으로 검색하도록 합니다. 

추가시 role을 Admin으로 선택합니다. 

모두 추가한 화면입니다. 

이제 실제 코딩하는 상황을 가정하고 진행해보도록 하겠습니다. 

 

IntelliJ 에서 새로운 SpringBoot 프로젝트를 만들어봅니다. (새로운 프로젝트는 팀장 역할을 하는 사람만 만듭니다. 팀장이 기본 세팅을 하고 github에 올리면 다른 팀원은 해당 repository를 clone 받아 프로젝트를 시작하는 형태로 진행하였습니다.)

간단하게 index를 출력하는 컨트롤러를 하나 만들고 push하도록 하겠습니다. 

터미널 작업이 좀 더 수월하여 터미널로 작업합니다. (초기 세팅 이후에는 IntelliJ 에서 지원하는 git 기능을 활용하면 편하게 작업할 수 있습니다.)

 

git init로 초기화 작업을 하고 

git remote add 를 이용하여 원격저장소 설정을 해줍니다. 원격저장소 주소는 조금 전 만든 repository의 주소입니다. 

git add . 를 실행하여 모든 파일을 추가합니다. 

commit을 수행합니다. 

push를 수행합니다.

push 완료 후 github에 접속하여 정상적으로 push가 수행되었는지 확인합니다. 

 

지금부터 팀원이 진행하는 내용입니다. 

팀원은 프로젝트를 저장할 폴더에서 git clone으로 팀장이 올린 프로젝트를 다운받습니다.

clone 수행 후 IntelliJ를 이용하여 프로젝트를 열어보면 모든 내용을 잘 가져온 것을 확인할 수 있습니다. 

 

 

다음 글에서는 팀장 및 팀원이 개발을 진행할 때의 상황을 소개하도록 하겠습니다. 

 

 

 

 

 

 

 

 

 

 

 

728x90

+ Recent posts