집과 회사, 데스크탑과 노트북과 같이 같은 작업을 여러PC에서 해야할때가 있을수 있습니다.
하나의 깃허브 원격저장소에서 두개의 pc에서 공유하는 방법이 있는데요.
바로 clone을 통해 원격 저장소를 복제하는것 입니다.
원격 저장소를 기존에 연결된 지역저장소 외에 다른 지역 저장소에서 사용하려면 원격 저장소에 담긴 내용 전체를 지역 저장소로 가져와야하는데요.
이를 '복제한다', '클론(clone)', '클로닝(cloning)' 이라고 합니다.
저의 레퍼지토리에 cinetest라는 원격저장소가 있습니다.
저 pc에는 홈디렉터리 아래에 cinetest와 연결된 디렉터리가 있는데요.
c드라이브 아래에 cinetest01이라는 저장소와 cinetest02라는 저장소를 각각 만들어 보겠습니다.
Repository에 이미 올라간 내용이 있다면 초록색 버튼의 Code를 누르면 주소를 복사할수 있습니다.
그리고 다시 터미널창으로 넘어와주세요.
$git clone 복사한주소 cinetest01
$ls
git clone 주소
만 쓴다면 Repository의 이름으로 원격저장소가 복제되어 지역저장소가 만들어집니다.
하지만 뒤에 만들고 싶은 디럭터리의 이름까지 적어준다면 내가 원하는 이름으로 원격저장소를 복제한 지역저장소를 만들수 있습니다.
cinetest02라는 이름으로 한번더 clone 해보겠습니다.
$git clone https://github.com/KangCine/cinetest.git cinetest02
$ls
역시 cinetest02 디렉터리가 생겼습니다!
저는 테스트를 위해 편의상 같은 pc에 저장소를 복제했지만 다른 pc에도 위와 같은 방법으로 저장소를 복제할수 있습니다.
그러면 각각 디렉터리에 들어가서 log와 remote -v를 확인해볼까요?
$cd cinetest01
$git log
$git remote -v
커밋내역이 3개가 있으며 cinetest 레퍼지토리(원격저장소)와 잘 연결이 되어있습니다.
그럼 이번에는 cinetest02로 이동해서 확인해보겠습니다.
$cd ..
$cd cinetest02
$git log
$git remote -v
동일한 커밋내역이 있으며 마찬가지로 cinetest의 원격저장소와 연결이 잘 되어있습니다.
만약 회사에서 작업을 한뒤 커밋을 했다는 가정하에 cinetest01에서 test11.txt파일을 만들고 "office"라는 메세지로 커밋을 한뒤 원격 저장소에 올려보겠습니다.
$cd ..
$cd cinetest01
$vim test11.txt
$git add test11.txt
$git commit -m "office"
$git push
원격저장소에 잘 올라와 있네요!
자 이제 퇴근을 하고 집에와서 못다한 작업을 한다고 가정하면 어떻게 해야할까요?
cinetest02디렉터리로 이동한뒤 pull 명령을 이용해 원격저장소의 파일들을 당겨오겠습니다.
$cd ..
$cd cinetest02
$git pull
test11.txt파일이 당겨져 왔을까요??
아주 잘 당겨져 왔으며 내용도 잘 따라 왔습니다!
이제 집에서 작업을 하고 다시 커밋하고 push한뒤 회사에서 다시 당겨오면 되겠네요!
한번 해볼까요?
test11.txt파일에 office 아래에 home이라는 글자를 추가한뒤 다시 푸쉬하고 cinetest01에서 다시 당겨보겠습니다.
커밋을 home메세지로 하겠습니다.
$vim test11.txt
$git add test11.txt
$git commit -m "home"
$git push $cd ..
$cd cinetest01
$git pull
$ls -la
$cat test11.txt
내용이 잘 들어와있네요!
cinetest01디렉터리와 cinetest02 디렉터리 어디에서 작업하고 커밋해도 원격저장소의 commit 횟수가 증가합니다.
이렇게 원격저장소를 clone하여 작업하게 되면 집과 회사에서의 작업은 commit 내역을 비롯하여 모든 작업을 공유하게됩니다.
log를 이용해 커밋을 확인해봐도 공유가 됩니다.
본 포스팅은 DO it! 지옥에서 온 문서 관리자 깃&깃허브 입문 도서를 참고하며 공부한 내용을 포스팅 하였습니다.
'Git > Github' 카테고리의 다른 글
[Git & GitHub] 협업하기 (0) | 2022.06.28 |
---|---|
[Git & GitHub] 원격 브랜치 정보 (0) | 2022.06.27 |
[Git & GitHub] 깃허브 SSH(Secure Shell) 원격 접속 (0) | 2022.06.25 |
[Git & GitHub] 원격저장소에 파일 올리고 내려받기(push & pull) (0) | 2022.06.24 |
[Git & GitHub] 원격저장소와 지역저장소 연결 (0) | 2022.06.23 |