2020. 12. 20. 21:12ㆍIT 공부/개발환경
※ 참고 사이트
1. 스프링에서 협업 프로젝트 만들기
1. 깃허브에 원격저장소를 생성한다. (ignore 파일 굳이 생성하지 않음)
2. HTTPS 주소를 복사한다.
3. Spring(이클립스)의 Git Repository를 연다. (상단 메뉴바 - Window - Show View - other - Git - Git Repository)
4. 우클릭 - Clone a Git Repository
5. 복사해둔 HTTPS 주소를 URI에 입력한다. - Next
6. Import all existing Eclipse projects after clone finishes 체크 후 Finish
(깃 저장소 생성과 함께 프로젝트의 모든 정보가 복사되도록 체크하는 것)
※ Destonation - Directory : 내 컴퓨터에 위치하는 로컬 깃 저장소의 위치
※ Configuration - Remote name : 깃허브에 위치하는 원격 저장소를 지칭할 이름
7. 로딩이 끝난 뒤 프로젝트의 모든 정보가 동일하게 복사된 로컬 깃 저장소 2jo_test가 생성된 것을 확인할 수 있다.
8. 프로젝트 우클릭 - Team - Share Project
9. Repository에서 위에서 만든 로컬 깃 저장소를 선택한다.
10. 프로젝트가 협업 프로젝트로 바뀌었음을 확인할 수 있다.
2. 협업 프로젝트를 깃허브로 업로드하기
1. 마우스 우클릭 - Team - Add to index
(맨 처음에는 인덱스에 추가해주어야 Commit and Push를 할 수 있는 것 같음.
인덱스는 깃허브에 파일을 올릴 수 있는 대기실과 같은 가상 공간임)
2. Git Staging을 연다. (상단 메뉴바 - Window - Show View - other - Git - Git Staging)
3. 모든 파일을 Staged Changes로 옮긴 뒤 Commit Message를 작성한다.
(커밋 메세지는 깃허브에서 바로 보여지는 제목에 해당되므로
어떤 변동사항(무엇을, 왜)이 있었는지 기술해주면 좋다.)
4. Commit and Push 를 클릭
5. 원격저장소의 주소와 어떤 브랜치에 업로드할지 확인할 수 있다.
브랜치명을 변경하고자 할 경우 이 단계에서 바꾸면 된다.)
6. 내 컴퓨터의 로컬 저장소 (master)로부터 깃허브에 있는 원격 저장소 (master 브랜치)에
프로젝트의 모든 정보가 업로드된다.
7. 깃허브의 원격 저장소에 Commit Message와 함께 모든 프로젝트 정보가 업로드되었음을 확인할 수 있다.
3. 깃허브에서 프로젝트 가져오기 (팀원은 여기서부터 하면 됨)
1. 깃허브에서 HTTPS 주소를 복사한다.
2. Spring(이크립스)의 Git Repository에서 Clone a Repository 클릭
3. 복사해둔 주소를 URI에 붙여넣는다.
4. Destination - Directory 에서 내 컴퓨터에 위치할 로컬 깃 저장소의 폴더를 지정한다.
(일반적으로 원격 저장소명과 동일한 이름의 폴더를 자동 생성하므로 굳이 Browse 누르지않아도 됨.
혼자 테스트 하다보니 같은 이름의 폴더가 이미 존재해서 다른 장소로 변경하기 위해 Browse 누른 것임)
5. 깃허브에 있는 모든 정보를 받아온 로컬 저장소가 생성되었음을 확인할 수 있다.
6. JSP 파일도 정상적으로 실행되는지 확인한다.
(탐캣에서 path명이 /basic 등으로 오류날 수 있으니 실행 후 프로젝트명과 동일한지 확인해준다.)
7. 깃허브에 있는 프로젝트를 가져와서 로컬 깃 저장소를 만들고 스프링으로 불러오는 작업이 끝난다.
4. 소스트리에서 깃 저장소 연결하기
1. 스프링(이클립스)의 Git Repository에서 로컬 깃 저장소의 주소를 확인한다.
2. 소스트리에서 + 를 클릭하여 새 탭 열기 - Add - 탐색 - 로컬 깃 저장소인 폴더를 선택한다. (.git 이전의 폴더를 선택)
3. 탭의 이름을 지정하려면 이 단계에서 변경해준다. (지금은 2jo_test로 폴더명 그대로 사용함)
4. 로컬 깃 저장소를 소스트리로 연결하여 사용할 수 있게 되었다.
5. 좌측 메뉴에서 브랜치 - master는 로컬 깃 저장소의 브랜치를 가리킨다.
원격 - origin이 깃허브의 원격 저장소를 가리키며, 원격 저장소에 master가 존재함을 알 수 있다.
6. History에서 깃허브의 변동사항을 확인할 수 있다. (실시간 자동 반영되진 않고 불러온 시점까지의 내역을 보여줌)
7. 메인 화면에서 클릭하면 해당 변동내역이 어떠한지 아래쪽 화면에서 확인할 수 있다.
※ 커밋메세지 & 날짜 & 커밋한 유저 이름 & 변동 파일들 & 각 파일마다 변동된 내역 (초록색과 빨간색)
※ 초록색과 + 는 추가된 내역이고 / 빨간색과 - 는 삭제된 내역임
5. 작업한 파일을 소스트리를 사용하여 깃허브에 올리기
1. 스프링(이클립스)에서 필요한 작업을 수행 후 저장한다.
2. 소스트리 좌측 메뉴에서 "파일 상태"를 클릭하면, 수정 또는 새롭게 생성한 파일들이
"스테이지에 올라가지 않은 파일"에 올라와 있음을 확인할 수 있다.
또는 상단 메뉴에서 "커밋"에 숫자가 표시되는데,
이는 프로젝트에 변경이 있어 커밋할 사항이 있음을 알려주는 것이다.
3. 클릭하면 삭제된 내역(빨간색)과 새롭게 작성된 내역(초록색)을 오른쪽에서 미리보기 할 수 있다.
4. 깃 허브에 올리고자 하는 파일만 + 를 클릭하여 스테이지로 올린다.
5. 하단에서 Commit Message를 작성한다.
(커밋 메세지는 깃허브에서 바로 보여지는 제목에 해당되므로
어떤 변동사항(무엇을, 왜)이 있었는지 기술해주면 좋다.)
6. 원격 저장소의 브랜치로 커밋과 동시에 바로 Push 하고자 할 때 체크박스를 체크 후 커밋한다.
(브랜치를 따로 지정해서 Push 할 때는 체크하지 않는다.)
7. 로딩이 끝난 후 깃허브를 새로고침하면 Push한 내역이 업로드되었음을 확인할 수 있다.
6. 소스트리를 사용하여 깃허브에서 다른 조원의 작업 내역을 가져오기
1. 패치(fetch)를 클릭하여 깃허브에 변동사항이 있는지 확인한다.
(작업을 시작하기 전을 비롯하여 수시로 변동사항을 확인해야 코드 충돌을 미연에 방지할 수 있다.)
2. "수정본 소스트리에서만 한글 깨지는 중"이라는 Commit Message를 가진 작업내용이
깃허브에 새롭게 업로드 되어 있음을 확인할 수 있으며,
클릭하면 변경된 파일을 화면 하단 왼쪽에서, 각각의 수정 내역을 화면 하단 오른쪽에서 미리보기 할 수 있다.
3. 상단 메뉴에서 "Pull"을 클릭하여 변경내용을 내 프로젝트에 반영할 수 있다.
브랜치가 여러개일 경우 어떤 브랜치에서 가져올 지 지정할 수 있으며,
충돌이 없을 경우 곧바로 병합해서 커밋할 수 있도록 옵션을 지정할 수 있다.
4. 스프링(이클립스)에서 Pull로 가져온 내용이 반영되었음을 확인할 수 있다.
7. 소스트리에서 미리보기 화면의 한글 깨짐 현상 해결하기
1. 상단 메뉴바 - 도구 - 옵션 - 기본 텍스트 인코딩
2. utf-8을 euc-kr로 변경 후 확인
3. 미리보기에서 한글이 정상적으로 출력된다.
8. 깃허브에 업로드 하면 안 되는 파일 설정하기
1. 일부 설정파일의 경우 사용자마다 달라지는데 깃허브로 공유하다가 충돌이 날 수 있기 때문에,
업로드 되지 않도록 설정이 필요하다.
※ target 폴더 : .java 파일을 실행하면 .class 파일이 생성되듯이
프로젝트 실행시 자동으로 생기는 파일이 저장되는 폴더이다.
사용자마다 생기므로 굳이 깃허브에 업로드할 필요가 없다.
※ pom.properties : Maven과 관련된 환경설정파일로
사용자로부터 계속 변경될 가능성이 있다면 공유하지 않는게 좋을듯
2. 제외하고자 하는 파일 우클릭 - team - Advanced - Assume Unchanged
3. 소스트리의 인덱스에서 사라졌음을 확인할 수 있다.
4. 이 방법 외에 .gitignore 파일을 이용할 수도 있으나 우선 이 방법을 사용하는게 좋을 것 같다.
9. 충돌이 발생하는 이유
1. 동일한 파일을 두 사람이 수정하여 깃허브에 올리고자 하는 상황에 충돌(conflict)이 발생한다.
2. 먼저 Push한 사람의 수정내역으로 깃허브에 업데이트되므로, 나중에 Push하는 사람에게서 충돌이 발생하게 된다.
3. 이러한 충돌을 방지하기 위해서는 수시로 패치(fetch)를 하여 버전 관리를 해줘야 한다.
10. 충돌을 해결하는 방법
1. 패치(fetch)를 클릭하여 깃허브에서 업데이트된 내역을 받아온다. (프로젝트에 반영되진 않음)
2. 내가 가진 버전과 다른 분기점이 원격저장소 (origin/mater)에 존재함을 History에서 확인할 수 있다.
3. Push를 하려고 하면 충돌 때문에 불가능하다.
4. 깃허브의 업데이트 내역을 Pull로 반영하려고 하면 충돌을 먼저 해결하라는 알림창이 나타난다.
5. ======= 를 기준으로 하여 내가 가진 버전(위)과 깃허브에 있는 버전(아래)에서 각각 다른 부분을 보여준다.
6. 스프링(이클립스)에도 충돌 해결을 위해 두 가지 버전에 대한 코드가 모두 나타남을 확인할 수 있다.
7. 지금은 원격저장소의 것으로 충돌을 해결했지만,
스프링(이클립스)에서 코드를 별도로 수정하고, "해결된 것으로 표시"를 클릭한 뒤
Commit and Push 로 충돌 해결 할 수도 있다.
8. 스프링(이클립스)의 내가 가진 버전이 원격 저장소의 버전으로 바뀌었음을 확인할 수 있다. (동기화됨)
'IT 공부 > 개발환경' 카테고리의 다른 글
[Linux] 디스크 용량 로깅 (0) | 2023.05.02 |
---|---|
[Linux] Crontab으로 오래된 파일 자동삭제하기 (0) | 2022.08.31 |
윈도우에서 Visual Studio Code와 Git 사용하기 (0) | 2021.04.24 |
윈도우에서 php 개발환경 만들기 (2) | 2021.04.22 |
리눅스 환경에서 php 개발환경 만들기 (0) | 2021.04.21 |