(이미 함)
로컬에 레포지토리(GitTestGUI) 만들기!
내 컴퓨터에 깃이 깔려 있으면, 버전 관리를 로컬로 할 수 있을 뿐 아니라 깃허브와 소통(백업, 복구..)할 수 있다.
다른 컴퓨터에도 깃이 깔려 있으면 깃허브를 통해 소통(다운도르, 복제, 백업)할 수 있다.
레포지토리 -> 깃허브의 폴더 느낌텍스트
copilot <- 깃허브에서 제공하는 인공지능. 나중에 한 번 써보자!
-> 레포지토리 로컬에 없어서 새로 그냥 만들어서 연결할거니?
-> 이미 있는 로컬 레포지토리를 깃에 연결시킬거니?
1) 깃허브에 새로운 레포지토리 생성 (FirstRepository)
2) 연결
(현재 깃허브에 레포, 로컬에 레포 1개 있는 상태)
git remote add 원격저장소(깃허브에 만들어놓은 레포지토리)별칭(1) 원격저장소URL(2)
<- 이런 방식으로 로컬에서 깃허브 레포지토리를 연결해야 함
원격저장소URL(2) -> 깃허브에서 주소를 찾을 수 있음
// https://github.com/wlqgkrry/GitTest.git
//
git remote add origin https://github.com/wlqgkrry/GitTest.git
연결시키는 명령어 - 복사해서 사용하기
vscode에서 연결시키는 명령어를 입력 후
git remote -v를 쳐서 볼 경우 (fetch)(push) 된 내용을 볼 수 있음
-> 연동이 되었다는 뜻! (그치만 코드는 안 올린)
git push 원격저장소별칭 원격저장소레포지토리명
ex) git push origin master
master와 main의 차이?
-> git log를 쳐서 master인지 main인지 확인할 수 있음
(연결 함 이후) = 깃허브 레포에 로컬레포의 소스를 올리기 : git push origin master(main) 명령어 이용
-> 연결하고 소스코드 안 올렸을 때
-> 연결하고 소스코드가 올라왔을 때
깃허브 처음 레포 생성해서 연결하고 소스코드 올리려면 처음에 username와 패스워드를 확인하는 작업을 깃허브가 시킴
패스워드란 : 토큰 생성해서 토큰 집어넣게 만들어놓음
토큰을 받을 수 있는 곳 : 깃허브의 프로필사진 클릭 -> settings -> developer settings -> tokens(classic) 클릭
-> generate token(classic)클릭
-> notes : for vscode
-> no expiration없이(30일?) 잡기
-> 이제 나온 토큰을 비번란에 입력하기!
이전에 한 clone의 방향은 로컬 -> 깃허브로의 클론(GITTESTGUI -> FIRSTREPOSITORY)
지금 할 내용은 깃허브 -> 로컬로의 클론(FIRSTREPOSITORY -> GITTESTCLONE)
(이전) -> (GITTESTGUI -> FIRSTREPOSITORY)
1) 깃허브 새로운 레포지토리 생성
2) 연결 git init(트래킹), remote add(스테이징), commit
3) 소스 코드 올리기 push
(지금) -> (FIRSTREPOSITORY -> GITTESTCLONE)
1) 연결
2) 소스코드 받아오기
clone -> 깃허브에서 로컬로 파일을 내려받는 작업
깃허브 레포지토리 연결시키는 명령어
-> git clone (원격저장소URL)
(원격저장소URL)을 가져오는 곳 : code버튼 눌러서 경로 복사
여기서는 : https://github.com/wlqgkrry/FirstRepository.git
근데 clone후 살펴보면 (연결 && 소스코드 로드)가 함께 되어 있는거로 확인할 수 있음.
위에서는 따로 코드를 로드해야 하는데 왜 여기서는 한 번에 됐나?
-> clone명령어가 자동으로 연결 및 소스코드 로드까지 해준다.
add = staged
깃 -> 로컬에서만 일어나는 일
깃허브 -> 원격에서 일어나는 일
브랜치(branch) : 나뭇가지!(버전 복사하는 것)
여러 기능을 조금조금씩 구현하고 싶을 때, 브랜치로 구별해서 구현함
예시 : 로그인 기능, 상품 조회 기능.. 등 다른 기능을 나눠서 구현함
(vscode)
git status와 git log 차이점
1) git status : git init하고 난 뒤 add(스테이징)이 안 된 파일 있나? 확인할 때 씀
on branch main : main 브랜치에 있고, 커밋할 것 없음. 이라고 씀
3) git log : 어디까지 찍혔는지를 봄
2) git branch : 무슨 브랜치가 있어?
*(브랜치) <- 현재 이 브랜치에 있다는 뜻
git checkout dev : 현재 브랜치에서 체크아웃해서 나간 다음 dev라는 브랜치로 들어가고 싶습니다.
git branch dev : dev라는 브랜치를 만들게요
git branch : 현재 어떤 브랜치가 있는지 알 수 있음, 또한 현재 내가 어떤 브랜치를 수정하고 있는지 (*별)표시를 통해 알 수도 있음
branch는 C언어의 포인터 개념에 가깝다고 볼 수 있다. 정확히 말하면 물리적으로 현재까지의 main브랜치를 복사하는 것이 아니라 가상으로 main브랜치의 내용을 복사한 것으로 볼 수 있는 것.
<레포지토리생성>
<실습화면1>
<실습화면2>