Git 다운로드 필요
멤버는 총 2명이라는 가정하에 설명. (책임, 1번 개발 멤버)
주제 : 깃헙 푸시 풀 브랜치의 활용
푸시 (push) : 내가 제작한 코드를 업로드
풀 (pull) : 깃헙에 코드를 불러서 내코드에 적용
커밋 (commit) : 해당작업에 푸시나 풀이전에 메세지를 남기기 위한 작업
브랜치 : 깃헙에 푸시 밑 풀기록을 남기기 위한 작업 이름 (main 브랜치와 동일한 작업 이름은 사용 하지 않는다.)
git init : 현재 폴더가 Git의 버전 관리아래에 들어감
git add --all : 깃의 버전이나 깃의 작업 변경 사항 적용
git add . : 현재 터미널에서 선택한 디렉토리(폴더)에서의 버전이나 깃의 작업 변경 사항 적용
git init 입력 -> git add --all또는 git add . -> 커밋 -> 푸시or풀
1. 깃허브 사이트에서 repository 생성
참조 사진 -1
2. github 관리 전용 디렉토리(폴더) 생성
-선택이긴 하지만 강력 추천
3. github 관리 전용 디렉토리(폴더) 안에 개발 환경 생성
4. 터미널로 개발 환경 디렉토리로 들어가 아래와같이 git init입력
PS C:\users\user\Documents\github\untitled> git init /좌측처럼 입력 Initialized empty Git repository in C:/Users/user/Documents/github/untitled/.git/ --메세지
git init : 현재 폴더가 Git의 버전 관리아래에 들어감
5. 터미널로 개발 환경 디렉토리로 들어가 아래와같이 ' git remote add origin 깃레포지토리 주소 ' 입력
참조 사진 -1에 깃 레포지토리 주소가 초록색 상자로 표시
git remote add origin https://github.com/be-01-team/practice-spring-api.git /좌측처럼 입력 git add --all /좌측처럼 입력
--아래는 메세지 warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it warning: in the working copy of '.idea/misc.xml', LF will be replaced by CRLF the next time Git touches it warning: in the working copy of 'gradlew', LF will be replaced by CRLF the next time Git touches it warning: in the working copy of 'src/main/java/com/example/StreamExample1.java', LF will be replaced by CRLF the next time Git touches it -- 메세지
6. 깃허브 브라우저나 어플에서의 요청 허가
(깃헙에서 요청을 안하는 경우도 있으나 문제는 안됨)
7. 깃허브 커밋 (commit) 입력으로 첫 코드 푸시전 환경 세팅
git commit -m "first initalized codes" /좌측처럼 입력
--아래는 메세지 [master (root-commit) 3c60ce1] first initalized codes 24 files changed, 910 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle create mode 100644 src/main/generated/com/example/repository/QAcademy.java create mode 100644 src/main/generated/com/example/repository/QTodo.java create mode 100644 src/main/java/com/example/Customer.java create mode 100644 src/main/java/com/example/StreamExample1.java create mode 100644 src/main/java/com/example/StringUtils.java create mode 100644 src/main/java/com/example/config/QueryDslConfig.java create mode 100644 src/main/java/com/example/repository/Academy.java create mode 100644 src/main/java/com/example/repository/AcademyRepository.java create mode 100644 src/main/java/com/example/repository/AcademyRepositorySupport.java create mode 100644 src/main/java/com/example/repository/Todo.java create mode 100644 src/main/java/com/example/repository/TodoRepository.java create mode 100644 src/main/java/com/example/repository/TodoRepositoryCustom.java create mode 100644 src/test/java/BasicTest.java --메세지 '''
커밋 개념 : git commit -m(메세지의 줄임말) "first initalized codes"(해당 작업에 대한 명시를 해야 협업시 수월한 협업 가능)
더하여 커밋이 안되있다면 어떤한 pull이나 push가 작동 불가
8. 깃허브 브랜치 이름 확인 후, git push -u origin master 입력으로 첫 코드 push 성공
PS C:\users\user\Documents\github\untitled> git branch /좌측처럼 입력 * master --브랜치 확인 후 PS C:\users\user\Documents\github\untitled> git push -u origin master /이렇게 입력
--아래는 메세지 Enumerating objects: 42, done. Counting objects: 100% (42/42), done. Delta compression using up to 12 threads Compressing objects: 100% (31/31), done. Writing objects: 100% (42/42), 65.88 KiB | 13.18 MiB/s, done. Total 42 (delta 1), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (1/1), done. To https://github.com/be-01-team/practice-spring-api.git * [new branch] master -> master branch 'master' set up to track 'origin/master'.
push 개념 : git push -u (upstream 약자로 해당 브랜치로 업로드시 그 브랜치가 다음에도 기본으로 브랜치로 변경) origin (해당 원격저장소의 기본 default) master(브랜치 이름)
아까 그 repository로 들어가면 아래사진과 같이 업로드 완료
이렇게 브랜치 명칭에 맞게 생성 최초로 올린 브랜치의 이름이 기본 브랜치가 되며 그 브랜치가 프로젝트 총 책임 브랜치로 되어야한다.
이거 이외는 이 브랜치를 사용하지 않도록 한다. 왜냐면 분리된 브랜치로 코드의 변형을 막기 위함이다.
git init
git remote add origin https://github.com/....
git add --all
git commit -m "first initalized codes"
git branch
git push -u origin master
깃허브에 기본 코드 틀이 올라간 이후, 개발 멤버가 코드를 받는다
9. 터미널로 개발 환경 디렉토리로 들어가 아래와 같이 git init입력
그 이후, git clone https://github.com/be-01-team/practice-spring-api (리포 주소) 입력
PS C:\kotlintutorial\practice-spring-api> git init /좌측처럼 입력 PS C:\kotlintutorial\practice-spring-api> git clone https://github.com/be-01-team/practice-spring-api /좌측처럼 입력
--아래는 메세지 Cloning into 'practice-spring-api'... remote: Enumerating objects: 42, done. remote: Counting objects: 100% (42/42), done. remote: Compressing objects: 100% (30/30), done. remote: Total 42 (delta 1), reused 42 (delta 1), pack-reused 0 Receiving objects: 100% (42/42), 65.88 KiB | 5.07 MiB/s, done. Resolving deltas: 100% (1/1), done. --메세지
git clone 개념 : git clone https://github.com/be-01-team/practice-spring-api (레포지토리 주소) 이 개념은 해당 주소에 관련된 코드를 현재 디렉토리로 다운 받는다.
10. 터미널로 second-kim 브랜치 생성
이유 : !!![필수] master브랜치에 영향을 주기 때문에 브랜치를 second-kim으로 변경 하고 작업
PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git branch /좌측처럼 입력 * master PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git branch second-kim /좌측처럼 입력 PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git branch * master second-kim
11. 터미널로 master브랜치를 git checkout second-kim으로 second-kim으로 변경하여 작업
PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git checkout second-kim /좌측처럼 입력 Switched to branch 'second-kim' PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git branch /좌측처럼 입력 master * second-kim
개발 환경에 깃환경을 정착하면 왼쪽 초록색 상자 처럼 새로운 ui가 추가됨
이 상태에서 master
브랜치를 유지한 채로 개발하면 원격적으로 변경 가능성이 있음. 본 코드에 오류 가능성 유발, !!!따라서 [필수] 작업 브랜치로 변경 후 코드 작업
개발 브랜치에 위와같이 추가 됨
12. git init 입력과 git add . 입력으로 git 환경 구성
PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git init Reinitialized existing Git repository in C:/kotlintutorial/practice-spring-api/practice-spring-api/.git/ PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git add --all warning: in the working copy of '.idea/misc.xml', LF will be replaced by CRLF the next time Git touches it
13. 커밋 입력 후, git 환경 구성
PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git commit -m "user list changed" /좌측처럼 입력 [second-kim e817c13] user list changed 4 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 .idea/jpa-buddy.xml create mode 100644 .idea/vcs.xml --메세지
14. git push -u origin second-kim으로 코드 올림
PS C:\kotlintutorial\practice-spring-api\practice-spring-api> git push -u origin second-kim
--아래는 메세지 Enumerating objects: 21, done. Counting objects: 100% (21/21), done. Delta compression using up to 4 threads Compressing objects: 100% (10/10), done. Writing objects: 100% (12/12), 1.26 KiB | 323.00 KiB/s, done. Total 12 (delta 4), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (4/4), completed with 4 local objects. remote: remote: Create a pull request for 'second-kim' on GitHub by visiting: remote: https://github.com/be-01-team/practice-spring-api/pull/new/second-kim remote: To https://github.com/be-01-team/practice-spring-api * [new branch] second-kim -> second-kim branch 'second-kim' set up to track 'origin/second-kim'.
15. 위 작업 이후 second-kim 브랜치에 PR(pull request) 요청이 오면 깃허브에서 PR(pull request) create 그리고 코드 merge 및 업데이트
해당 코드 작업
해당 코드 작업 merge 이후, 코드 변경됨
브랜치 기록
git init
git clone https://github.com/...
git branch second-name
git checkout second-name
git commit -m "user list changed"
git push -u origin second-kim
깃허브 사이트에서 PR 생성
책임 계정으로 PR merge로 코드 업데이트
git init은 이미 했기에 git add --all 입력 -> git commit -m "pull finished work" 입력
PS C:\users\user\Documents\github\untitled> git add --all /좌측처럼 입력 PS C:\users\user\Documents\github\untitled> git commit -m "pull finished work" /좌측처럼 입력
--아래는 메세지 [master 75aa2c8] pull finished work 1 file changed, 6 insertions(+) create mode 100644 .idea/vcs.xml
16. pull로 코드 다운받기
PS C:\users\user\Documents\github\untitled> git pull origin master
--아래 메세지 From https://github.com/be-01-team/practice-spring-api * branch master -> FETCH_HEAD Auto-merging .idea/vcs.xml CONFLICT (add/add): Merge conflict in .idea/vcs.xml Automatic merge failed; fix conflicts and then commit the result.
17. manager라는 branch를 생성
PS C:\users\user\Documents\github\untitled> git branch manager PS C:\users\user\Documents\github\untitled> git branch manager * master
18. git add --all 입력 후, manager로 브랜치 변경 그리고 코드 작업
PS C:\users\user\Documents\github\untitled> git add --all PS C:\users\user\Documents\github\untitled> git checkout manager --아래 메세지 Switched to branch 'manager' A .idea/jpa-buddy.xml M .idea/misc.xml M .idea/vcs.xml M src/main/java/com/example/StreamExample1.java
19. 그리고 아까와 비슷한과정으로 코드 push를 하여 업데이트
브랜치 삭제 : git branch -d 브랜치이름
리포지토리에 가장 최신기록의 push와 pull로 덮어써서 업데이트하는 방법
git commit -m '메세지' 입력 이후 , git pull --rebase origin main 입력
git remote remove origin
Switched to a new branch 'new-feature-branch'
만약 이런 문구가 뜬다면 fatal: refusing to merge unrelated histories