학원/수업 기록

Git 시작하기

60cod 2022. 9. 6. 10:29

용어 알기

 

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

버전 히스토리 확인할 수 있음.