Eclipse 의 Git 연동은 EGit 플러그인이 담당한다. 최근 Eclipse IDE for Java Developers 배포본에는 기본 포함돼 있다. 화면 이름은 버전에 따라 조금씩 다르지만 흐름은 같다.
작업 전에 Git Repositories 뷰를 띄워 둔다. Window > Show View > Other... > Git > Git Repositories 로 연다. 프로젝트 탐색기의 컨텍스트 메뉴만으로는 원격 브랜치가 보이지 않아 헤매기 쉽다.
원격에 이미 있는 브랜치에서 시작하는 경우다.
Remotes > origin 에서 Fetch 를 먼저 실행한다. 이것을 하지 않으면 새로 생긴 원격 브랜치가 목록에 없다.Branches > Remote Tracking 에서 대상 브랜치를 고른다.로컬에서 새로 시작하는 경우는 Branches > Local 에서 기준 브랜치를 고르고 Create Branch 를 누른다. Configure upstream for push and pull 을 켜 두면 첫 푸시에서 추적 관계가 잡힌다.
프로젝트를 우클릭해 Team > Commit 을 누르면 Git Staging 뷰가 열린다.
Unstaged Changes 에서 올릴 파일만 Staged Changes 로 옮긴 뒤 메시지를 쓰고 Commit 을 누른다. Commit and Push 는 커밋과 동시에 추적 중인 원격 브랜치로 밀어 버리므로, 어디로 가는지 확인하기 전에는 누르지 않는다.
Author 와 Committer 가 비어 있거나 잘못돼 있으면 Window > Preferences > Version Control (Team) > Git > Configuration 에서 user.name 과 user.email 을 설정한다.
현재 브랜치와 다른 이름의 원격 브랜치로 보내야 할 때가 있다.
Team > Push Branch... 또는 Remote > Push... 를 고른다.Push... 를 고르면 소스 참조와 대상 참조를 직접 지정하는 화면이 나온다. Source ref 에 로컬 브랜치, Destination ref 에 refs/heads/<대상브랜치> 를 넣고 Add Spec 을 누른다.Force Update 체크는 원격 이력을 덮는다. 공유 브랜치에서는 쓰지 않는다.
푸시가 non-fast-forward 로 거부되면 원격이 앞서 있는 것이다. Fetch 후 Team > Pull 또는 Rebase on ... 으로 먼저 맞춘다.
보호 브랜치로의 직접 푸시는 서버가 거부한다. 작업 브랜치로 올린 뒤 병합 요청을 만든다.
HTTPS 로 붙는데 인증이 계속 실패하면 저장한 자격증명이 낡은 것이다. Preferences > General > Security > Secure Storage 에서 지우고 다시 입력한다. 토큰 기반 인증이면 비밀번호 자리에 토큰을 넣는다.