git

github - branch, clone(복제)

열곰탱 2022. 9. 2. 12:00

clone - 복제

 

 

원하는 HTTPS 복사

https://github.com/codingspecialist/Springboot-MyBatis-Setting.git

 

GitHub - codingspecialist/Springboot-MyBatis-Setting

Contribute to codingspecialist/Springboot-MyBatis-Setting development by creating an account on GitHub.

github.com

 

 

지정할 폴더에서 Git Bash 켜기

 

1.workspace에 git_lab폴더 생성

 

2. git_lab폴더 안에서 Git Bash 켜기

 

clone

clone - GitHub에 있는 프로젝트를 로컬에 복제

git clone "복사 한 주소"(shift + insert)

https://github.com/codingspecialist/Springboot-MyBatis-Setting.git

만든git_lab 삭제

 

_______________________________________________________________________________________________

Branch 생성

연습 예제 (login, join write)

ch01폴더 생성

 

 

ch01 폴더 안에서 git bash 시작

git init -> git 폴더 생성

 

테스트 용 join.txt 생성

 

join.txt안에 텍스트 입력

 

 

git add .

git commit -m "[이름] 회원 가입완료"

 

테스트용 login 파일 생성 

login.txt생성

login.txt에 텍스트 입력

git add . 

git commit -m "[이름]로그인 완료"

 

 

 

 브랜치 생성  - git branch 브랜치 이름

git branch write-topic

write-topic이라는 브랜치 생성

master은 최종 배포판만 넣기 때문에 브랜치에서 보통 기능 개발해서 합친다.

 

 

git branch 브랜치 확인

현재 master 브랜치 사용중

 

사용중인 브랜치 이동하기 git checkout 브랜치 이름

git checkout write-topic

사용중인 브랜치가 옮겨졌다. 이제 branch에서 개발을 할수 있게 된다.

 

 

write 브랜치로 바뀐 상태에서 write.txt생성(현재 브래니의 위치 = write)

write.txt 텍스트 입력

 

write 파일 커밋

git add .

git commit -m "[이름] 제목 "

 

git log 로그 추가 및 commit 확인

현재 write-topic에 3개의 로그가 있다.

 

git checkout master 브랜치 다시 master로 이동

master에는 login, join 두개가 있었기 때문에 master로 이동 후 로그 확인하면 두개만 있다. 

 

write 텍스트 파일을 수정후 "글쓰기 최종완료"라고 커밋

텍스트 파일 수정

 

git add .

git commit -m [이름]글쓰기 최종 완료"

 

log로 확인

글쓰기 완료 부분도 추가로 commit이 되었다.

 

이제 최종 완성 되었으니까 master로 옮기기 git merge 합칠 브랜치 이름

 

git checkout master

 

master + write 병합 (현재는 덮어씌우기)

git merge 브랜치 이름

 

합친후 로그 남기기

 

이제 master에는 write-topic 브랜치가 병합되었다.

처음에 master에 있던 파일들(login,join)을 write-topic(login,join,wirte)로 모두덮어씌웠다.

(브랜치 옮길 때는 기존 master파일들을 모두 복사해서 write-topic브랜치로 가져온다.)

 

 

만약 merge를 했지만 이전으로 돌아가야 할 경우 실습(write를 삭제 해야 할 경우) - git reset --hard 해시코드

 

해시코드에서 앞자리 4자리 정도만 적어주면 된다.

 

git reset --hard 해시코드

로그인 완료 까지 했던 곳으로 이동하였다.

(write가 완전히 지워진것은 아니다. 다시 merge를 하면 합쳐진다.)

 

 

git reflog  - 현재까지 남겼던 로그를 모두 볼 수 있다.

 

이때까지 했던 모든 log가 남아있다.

만약 이동하고 싶은 로그가 있다면 돌아갈 수 있다.

다시 merge로 했던 곳으로  돌아가기 

git reset --hard 해시코드

 

git log로 확인 할 수 있다.

 

 

복습할때 코드 되돌리는 법

git checkout -b master-copy

git log

git reset --hard 커밋아이디

git branch -d 가지이름 (해당가지에서는 안됨)