0.기본용어
(1) Repository
1) Local Repository -> 내 컴퓨터의 git 폴더
2) Remote Repository (== Origin )-> 원격저장소 서버의 git
(2) main or master(메인)
1) 원본 , 출시용 브랜치
(3) Head
1) 현재 작업중인 branch
2) 현재 체크아웃된 브랜치의 가장 최신커밋
(4) origin : 원격저장소 이름
C:\Users\xxxkss\git\egov01 > git remote -v
origin https://xxxekss@bitbucket.org/xxxkss/egov01.git (fetch)
origin https://xxxkss@bitbucket.org/xxxkss/egov01.git (push)
1. 원격저장소 생성- Main(Master) 생성
(1) git 원격서버 - github,gitlab, bitbucket....
1) github
https://github.com/
top repository
Create a new repository
2) gitlab <- 인덕원
https://gitlab.com/
new Project
3) bitbucket
https://bitbucket.org/dashboard/overview
Create Project
Create repository
1. fork
(1) 다른 프로젝트의 저장소에 들어있는 모든 내용을 복사해 와서 자신의 저장소를 만드는 작업.
(2) GitHub에서 다른 이의 작업물을 복사하는 과정.
2. branch생성
(1) git Main(Master)을 가지고 각각 브랜치 생성
(2) GitHub , GitLab , bitbucket
1) new Branch
dev branch생성
feature/xxxkss branch생성
(3) cmd 에서 clone
$ git branch dev
$ git branch feature/xxxkss
3. Git Clone
(1) remote 에서 local로 저장소 가져오기(복제하기)
(2) 새로 생성한 프로젝트 (init, fork...)를 로컬로 가져오기
(3) GitHub , GitLab , bitbucket
해당 Git 선택후 git clone...
(4) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 clone
eclipse > git repogistory > Clone a git repogistory 선택
(5) cmd 에서 clone
$ git clone { 원격 저장소 URL } - 원격저장소 전체
$ git clone https://github.com/xxxkss/myandroid.git - 원격저장소 전체
$ git clone -b { 브랜치명 } { 원격 저장소 URL } - 특정브랜치
4. Check out
(1) local에 branch를 만들고 전환 또는 branch전환 또는 내용 되돌리기(Restore)
(2) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 checkout
eclipse > git repogistory > 프로젝트 선택 > remote tracking > 해당 branch 선택
> Check out > Check out as new local branch 를 하면 local branch생성
(3) cmd 에서 checkout
$ git checkout -b feature/xxxkss - 로컬 브랜치 생성과 이동하기(checkout)
$ git checkout feature/xxxkss - 브랜치 이동하기(checkout)
(4) Check out : branch만들고 전환,branch전환 또는 내용 되돌리기(Restore)
=> 특정 Branch로 이동하기
$ git checkout {Branch Name}
=> 특정 Branch 생성 후 해당 Branch로 이동
$ git checkout -b {New Branch Name}
=> 특정 branch 에서 파생 branch로 만들어서 해당 branch로 이동
$ git checkout -b {Branch Name} {Base Branch Name}
=> 모든 변경 사항을 취소
$ git checkout .
- 대상: 아직 add / commit 되지 않은 내용 (Working Directory에 있는 변경 내용)
되돌리고 싶은 파일은 추적 되고 있어야 한다.
- checkout으로 지워버린 내용은, commit하지 않고 지운 내용이기 때문에 다시 복구할 수 없다.
=> 특정 파일에서 작업한 내용 삭제
$ git checkout -- {File Name}
- 대상: 아직 add / commit 되지 않은 소스 (Working Directory에 있는 변경 내용)
- 추적되고 있는 파일명이어야 한다.
=> 특정 Commit 버전으로 전환
$ git checkout {Commit Hash}
- 아직 Commit 하지 않은 내용이 있다면 전환되지 않는다.
5. Import project
(1) 이클립스 에 프로젝트로 import 하기
(2) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 import project
eclipse > git repogistory (Show View) > 프로젝트 선택
> import Project
6. Commit & Push
(1) 로컬에서 원격 저장소 서버로 반영
(2) add : 작업 폴더에서 작업한 변경을 stage area에 올릴 때 사용
(3) commit : git add 명령어로 스테이지에 추가한 수정 파일을 git 로컬 저장소에 저장
(4) push : commit한 파일을 원격 저장소에 올리는 명령어
(5) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 add,commit,push
eclipse > Git Staging View
(6) cmd에서 add, commit, push
$ git add -A
$ git add .
$ git commit -m "파일들 수정 완료 "
$ git push {원격저장소 이름} {원격저장소로 push하과자하는 브랜치}
$ git push origin main
7. Merge : 병합
(1) pull request에서 검토 후 승인과정을 거쳐 기준 branch에 병합
즉 로컬브랜치 기준으로 다른 로컬브랜치에서 가져오기 또는 다른 remote브랜치에서 가져오기 가능
(2) GitHub , GitLab , bitbucket 에서 merge request,pull request,merge
1) merge request : gitlab
2) pull request : github , bitbucket
3) merge : eclipse
(3) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 merge
#이클립스 dev브랜치로 합치기
Team > Switch to > DEV 브랜치
Team > Merge > /feature/xxxkss 선택 OK
(4) cmd에서 merge
#master 브랜치로 병합
$ git checkout master
$ git merge {from branch}
$ git merge feature/xxxkss
8. Pull
(1) 서버 remote 에서 로컬로 소스 받기
(2) 원격 저장소의 데이터를 가져오고, 자동으로 현재 작업하는 로컬 브랜치와 merge
(3) fetch + merge
(4) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 pull
Team > Synchronize workspace > Pull
(5) cmd에서 pull
$ git pull {원격저장소 이름} {원격저장소에서 받아오고자 하는 브랜치}
$ git pull
$ git pull origin master
9. fetch
(1) 원격저장소의 데이터를 가져오고 로컬 브랜치와 merge하지는 않는다.
10. Revert
(1) 작업을 이전상태로 되돌리기
(2) 이클립스의 소스 및 로컬 저장소에 원격저장소의 소스를 반영
(3) 작업의 이력을 유지
(4) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 revert
이클립스
Team > Show in history > 선택 > Revert Commit
Team > Replace With > Head Revision
11. Reset
(1) 작업을 이전상태로 되돌리기
(2) 작업의 이력을 삭제
Working Tree Staging Area Repository
======= ======== ======
hard 취소 취소 취소
mixed 유지 취소 취소
soft 유지 유지 취소
(3) 해당 IDE(eclipse, sts4, vs code, intellij IDEA) 에서 reset
이클립스
Team > Reset
reset --hard
reset --mixed
reset --soft
12. 원격저장소 서버에 새로운 브랜치 생성하고 가져오기
12.1 git 원격 저장소 서버
xxxkss_local branch생성
12.2 eclipse
(1) remote tracking에 보이게
eclipse > git repogistory > 프로젝트 선택 > pull > remote tracking에 보임
(2) Check out
eclipse > git repogistory > 프로젝트 선택 > 해당 브랜치 선택 > remote tracking > 해당 branch 선택
> Check out > Check out as new local branch 를 하면 local branch생성