Git 시작하기
용어 알기
1. 형상관리도구 : 코드의 형태를 관리하는 지원도구. 버전별 관리 기능을 제공. 협업을 위해 사용.
- CVS : 유료.
- SVN : 무료. CVS와 기능 동일. 협업을 위해 만들어졌으므로 충돌이 나는 경우 올라가지 않음.
- Git : 무료. 형상관리도구가 아닌 배포버전지원이 주 목적. 변경 사항 쉽게 제공. GitHub을 통해 별도 서버 없이 사용 가능. 충돌이 나든 말든 올라감.
Git에서 난 에러 잡는 데에 10시간 든다면 SVN은 1시간만 드는 정도.
git 입문 시 참고하기 좋은 사이트
https://backlog.com/git-tutorial/kr/
누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog
누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!
backlog.com
2. branch: 만들어 놓은 버전(master)의 복사본(branch)을 만들어 다른 방향으로 작업을 이어나가는 것
3. fetch : 정보 취득. 깃 서버와 내가 작업하고 있는 것들의 변경사항이 뭔지 정보를 확인하는 것
4. pull : 원격에서 코드 취득. 깃 서버에서 파일을 내려받음
5. merge : 변경사항 병합, 버전 통일
6. push : 원격에 코드 올림
Personal access token 발급받기
프로필 - Settings - Developer settings - Personal access tokens - Generate new token
- Note 안에 내가 알아볼 수 있는 이름을 쓴다. 임시 비밀번호의 관리용 별칭.
- Expiration은 보안 상 90일 간격으로 하는 게 좋다.
- repo 체크
- 하단 Generate token 클릭
- 다음 화면에 토큰이 나온다. 잘 적어두기!
토큰은 발급 시 처음 한 번만 보여주고 다시는 보여주지 않는다.
없으면 원격으로 접근할 방법이 없다.
저장소 만들기 (Create a new repository)
Repository name 지정
Public / Private 선택
gitignore : 관리 안 할 파일 지정할 때
사용하는 라이센스 지정
주석처리 되어 있는
settings, classpath, project
없으면 이클립스 프로젝트 인식을 안 한다.
저장소 연결하기
이클립스 Window - Perspective - Open Perspective - Other - Git 선택 후 Open
깃헙에서
Code 클릭 - Clone 의 HTTPS 주소 복사
- 이클립스 Git Repositories에서 Clone a Git Repository and add the clone to this view 클릭
- 복사한 주소를 URl 칸에 넣기
- Password 칸에 Personal access token 넣고 (저장 체크) Next
- 브랜치는 안 쓰는 게 편함 Next
- Directory 지정 확인
- Password 어쩌구는 No (토큰 있어서 불필요)
프로젝트 받은 후 설정할 것
Window - Preferences - Version Control (Team) - Git - Configuration - User Settings - Add Entry...
Window - Show View - Other - Git - Git Staging
깃 작업할 때는 켜고 하기
프로젝트 공유하기 (등록)
프로젝트 우클
- team
- Share Project
- Git 선택 Next
- Repository : 어느 저장소에 올릴 건지 설정 Finish
연결만 되고 등록은 안 한 상태라 물음표 떠있음.
Window - Show View - Other - Git - Git Staging
처음에는 설정 파일들을 올려줘야 한다.
.classpath
.project
- 플러스 2개 짜리 Add all files~ 클릭
- Commit Message 에 코멘트 작성
- Commit and Push
등록됨!
ignore 업데이트 하기
프로젝트 받기
1. 먼저 Git 저장소 연결
이클립스 Window - Perspective - Open Perspective - Other - Git 선택 후 Open
- Clone a Git Repository 클릭
- 주소, 유저, 비번 넣고 Next
- Next
- Directory 확인하고 Finish
2. Working Tree 에서 해당 프로젝트 우클 - Import Projects
맞게 선택되었는지 확인하고 Finish
Window - Perspective - Open Perspective - Other - Java (Default) 클릭
임포트한 프로젝트가 들어와있음.
주의!
워킹 트리 자체를 임포트 하면 프로젝트로 인식이 안 된다.
무조건 워킹 트리 안에 있는 프로젝트를 클릭해야 한다.
Working Tree 안의 GitJava 폴더는 원격에서 정보 받아온 것
저장소는 깃헙, 지정한 저장 폴더, 이클립스 자체 이렇게 총 세 군데에서 관리를 한다.
변경사항 올리기 (사용 방법)
관리포인트 : 이클립트 - Local Git - GtiHub
변경사항이 있을 때
아이콘과 이름 사이에 꺽쇄가 생기고,
하단 Git Staging 의 Unstaged Changes에 생긴다.
플러스 버튼 클릭하면 Staged Changes로 넘어감.
여러 개 있을 때는 더블 플러스 버튼(all) 누르기!
코멘트 작성하고
커밋&푸시
<서버에 추가 작업이 없었을 경우>
1. Git staging : 변경사항 add file -> 코멘트 작성 -> Commit (Commit and Push 아님)
아직 깃헙에 안 올리고 이클립스와 Local Git만 왔다갔다 한 상황.
Commit : 이클립스 작업사항을 Local Git에 적용.
2. 프로젝트 우클 -> team -> push ~ (브랜치 관리를 안 하기 때문에)
push : Local Git 의 변경사항을 GitHub에 적용.
그 사이에 누가 올릴 수 있어서 최신이 아닐 수 있기 때문에 Commit and Push 바로 하지 않고
Commit 먼저 하고 push를 한다.
<서버에 추가 작업이 있었을 경우>
1. Git staging : 변경사항 add file -> 코멘트 작성 -> Commit (Commit and Push 아님)
2. 프로젝트 우클 -> team -> fetch ~
정보를 보고 충돌나는 게 있는지 없는지 확인하기.
받을 것은 아래로 화살표, 올릴 건 위로 화살표.
3.
1) 변경사항이 없으면
프로젝트 우클 -> team -> push ~
2) 변경사항이 있으면
프로젝트 우클 -> pull ~
깃헙에서 파일 받음.
4. 변경사항이 있고
1) 충돌이 안 났을 경우
프로젝트 우클 -> team -> push ~
2) 충돌이 생긴 경우
merge 작업 후 프로젝트 우클 -> team -> push ~
충돌이 생겼을 때
화살표가 양쪽으로 생김.
충돌났다고 수동으로 지우면 버전 정보가 싸그리 날아가면서 깃이 터지니 주의!!
해결
Git Staging -> 충돌 파일 우클 -> merge tool
방법 1. 사이의 꺽쇄 버튼(Copy Current Change from Right to Left) 누르면 복제를 해온다.
방법 2. 2 way 클릭해서 원격꺼를 수정해서 버전을 맞춤. 하지만 양쪽을 다 건드리므로 비추.
1번 방법 대로 복제하고 저장 누르는 게 안전
그러면 엑스표가 사라지고 화살표만 남는다.
이 다음부터 편집이 가능하니 파일 열어서 복제된 부분 정리하기.
add file(플러스) 누르면 코멘트가 알아서 달린다.
Commit 하고
Push해서 서버에 올리기.
정말 잘 바뀌었는지 보려면 team - pull 해서 병합해서 보면 됨.
Window - Team - Show a History
버전 히스토리 확인할 수 있음.