개발 공부/Front-end study log

git 프로젝트 복제 / 버전관리 / 신규환경 접속 / 충돌 문제 해결

●● 2021. 6. 27. 15:30

복제

 

1. 아무것도 없는 터미널에 

mac 은 ls

window 는 dir

입력하면,

바탕화면 경로에 있는 모든 폴더 등 경로 나옴

 

 

2.

cd (desk + tab키) 입력자동 완성 > 엔터 (change directory 약어)

 

 

3. 

git에서 repository 주소 복사해서, 터미널에 

git clone https://github.com/soominso/helloworld.git

 

입력 엔터하면, 바탕화면에 해당 repository 폴더와 파일들이 생긴 것 확인 가능

 

 

 

4.

터미널에서 clone된 폴더로 경로 이동하고,

'code .' 입력 엔터 시 >>>> 자동으로 클론된 폴더로 작업할 수 있는 새 VS 창 오픈됨

 

 

5.

'code . -r' 누르면 >>>>> 현재 오픈된 VS 창에 클론된 폴더 오픈됨

 

 

 

버전관리 연습/되돌리기

1.

터미널

git reset --hard HEAD~1

(--hard : hard 플래그를 통해서 완벽하게 돌려놓겠다는 의미)

(HEAD~1 : 버전의 내역에서 봤을 때 가장 최신의 버전이 'HEAD'라는 키워드를 가지고 있는데, 그 헤드에서 한 버전 뒤로 돌려놓는다는 의미, 두개 버전 reset 하려면 HEAD~2)

 

>>> git log 확인해보면 3버전에서 2버전으로 복구 되어있음.
다음 명령을 입력하기 전까지는 reset 적용하기 이전의 original이 한 번 메모리에 기록되게 됨.

undo 하려면 바로 해야함.

 

 

2.

되돌리기 Undo 하는 법

git reset --hard ORIG_HEAD

 

 

 

 

 

 

 

 

한번 git push 하면 master 만 업로드됨 (실제 위치해있는 브랜치에만)

purple branch 까지 업로드를 하려면,

purple branch로 이동한 다음에 (checkout), git push 하면됨  (git push origin purple)

 

 

 

 

 

 

 

 

 

 

 

새로운 환경에서 시작하기

1.

새로운 환경에서, git에 업로드된 repository를 clone해 가져오면

master branch  / 복사한 branch만 가져와짐

>>> 

terminal 확인

 

git branch

>>> master branch만 초록 표시

 

git branch -r

>>> 원격 저장소에 저장된 branch들이 함께 나옴 (빨강)
origin/master

origin/purple

 

git checkout -t origin/purple

>>> purple branch를 같이 가져옴

git branch 통해서 검색해보면 master, purple 두개가 뜸

 

 

 

 

2.

다시 purple 을 지우고 싶은 경우 (가져오기 전으로, branch 삭제)

현재 branch는 삭제 불가하므로, purple 지우고 싶은 경우 master로 나간 후,

git checkout master

지우는 플래그 입력

git branch -d purple

 

 

 

 

 

3.

git 생성과 동시에 해당 branch 로 이동하기 (checkout 필요없이)

git checkout -b yellow

yellow라는 branch 생성하면서 바로 이동됨

 

 

 

 

 

4. 

git 충돌 상황

git pull origin master >> 충돌한 내용이 파일 코드 내에 보이게 됨.

local 내용 남기고 원격저장소에서 pull 한 내용 지울 수도 있고,

원격 저장소 내용만 남기고 지워도 되고....! (수동으로)

VS제공 자동 선택 버튼 이용해도 됨

 

 

local도, 원격저장소도 가지고 있지 않던 신규내용으로 작성하고 싶으면,

git add . 

git commit -m '새로운 버전명'

git push origin master

통해서 다시 푸쉬하면 됨