git init loc-git
cd loc-git
vim f1.txt
로 파일을 열어 간단하게 영문자 'a'만 입력하고 저장
git add f1.txt
: 스테이지에 올리기
git commit -m "add a"
git log
: 커밋 확인
깃허브 저장소 화면에서 "커맨드 라인에서 기존 저장소를 푸시하기(...or push an existing repository from the command line)" 방법을 사용해서 지역 저장소에 있는 파일을 원격 저장소로 옮기는 방법
① 지역 저장소와 원격 저장소를 연결하려면 깃허브의 저장소 주소를 알고 있어야 함.
저장소 주소를 복사하여 터미널 창에 입력함.
git remote add origin 복사한 주소 붙여넣기
이 명령은 원격 저장소(remote)
에 origin
을 추가(add)하겠다고 깃에게 알려주는 것임. 여기서 origin은 깃허브 저장소 주소(https://github.com/...)를 가리킴. 이렇게 특정 원격 저장소에 연결하는 것은 한 번만 하면 됨.
② 원격 저장소에 제대로 연결이 되었는지 확인하기
git remote -v
원격 저장소에 제대로 연결이 되었는지 확인해보면, origin
이 가리키는 주소가 바로 옆에 표시됨.
지역 저장소와 원격 저장소를 연결되면 지역 저장소의 소스를 원격 저장소에 올릴 수도 있고, 원격 저장소에 있는 소스를 지역 저장소로 내려받을 수도 있음. 이때 지역 저장소의 소스를 원격 저장소로 올리는 것을 푸시(push)
라고 하고, 원격 저장소에서 지역 저장소로 내려받는 것을 풀(pull)
이라고 함.
git branch -M main
git push -u origin main
위의 명령은 지역 저장소의 브랜치를 origin
(원격 저장소의 main 브랜치)로 푸시하라는 의미임. 여기에서 -u
옵션은 지역 저장소의 브랜치를 원격 저장소의 main
브랜치에 연결하기 위한 것으로 처음에 한 번만 사용하면 됨.
위의 명령을 입력하면, 아래와 같은 로그인 창이 팝업되는데, 로그인하면 프롬프트에 관련 내용이 나타남.
푸시가 끝났다는 것은, 지역 저장소의 커밋이 원격 저장소로 올라갔다는 뜻.
깃허브 저장소가 열려있는 웹 브라우저 창으로 돌아와 F5
를 눌러 새로고침해 보면, 지역 저장소에 있던 1.txt
일이 원격 저장소로 올라와 있는 것을 확인할 수 있음.
한 번이라도 지역 저장소와 원격 저장소를 연결해서 푸시했다면, 그 다음부터는 더 간단하게 푸시할 수 있음.
vim f1.txt
: 원래 내용 다음에 영문자 'b'를 추가하고, 저장, 종료함.
git commit -am "add b"
: 스테이징 옵션(-a
)과 메세지 옵션(-m
)함께 쓴 것으로 최소 한 번만이라도 커밋한 파일(tracked 파일
)이어야 사용 가능함.
git push
웹 브라우저의 깃허브 저장소 화면에서 새로고침을 함. 파일 목록에서 파일 이름 오른 쪽에 2 commits
을 눌러보면 방금 커밋한 커밋메세지를 확인할 수 있음. 파일 목록에서 f1.txt 파일을 눌러보면 수정된 내용도 확인할 수 있음.
깃허브의 저장소로 접속하면, f1.txt파일이 있음. 여기에 새로운 파일 추가.
add file
> create new file
를 클릭하고 파일이름을 f2.txt
, 내용은 숫자를 입력함.
화면 아래로 이동하면, 기본적인 커밋 메시지(Create f2.txt
)가 입력되어 있음. 이 메세지를 그대로 사용하거나, 원하는 내용으로 수정한 후 Commit new file
을 누르면, 새로운 커밋이 추가되 것을 확인할 수 있음.
원격 저장소에 있는 소스 파일을 다른 사용자가 수정했거나 깃허브 사이트에서 직접 커밋하면 지역 저장소와 차이가 생김. 이럴 때는 원격 저장소와 지역 저장소의 상태를 같게 만들기 위해 원격 저장소의 소스를 지역 저장소로 가져옴. 이것을 풀(pull)한다
라고 함.
위의 연습에서 깃허브 사이트에서 f2.txt
을 만들었지만 지역 저장소에는 없는 상태임.
아래의 명령은 origin(원격 저장소)
의 내용을 main 브랜치
로 가져온다는 뜻임. (기본 원격 저장소가 origin
이고 지역 저장소의 기본 브랜치가 main
이기 때문에 git pull
만 입력해도 됨)
git pull origin main
git log