[git] 원격저장소와 협업하기

·2023년 3월 6일
0

Git

목록 보기
3/3

원격저장소는 우리 컴퓨터에서 작업하는 로컬저장소와는 다르게 인터넷, 네트워크에 있는 저장소를 말합니다.

협업은 repository의 상호작용입니다. 상호작용으로는 크게 5가지가 있어요.

  1. 원격저장소 추가 (remote)
  2. 원격저장소에 밀어넣기 (push)
  3. 원격저장소 복사하기 (clone)
  4. 원격저장소 동기화 (pull)
  5. 원격저장소 동기화없이 가져오기 (fetch)

01 원격저장소 추가 (remote)

원격저장소 추가하기

repository원격저장소를 상호작용하기 위해서 작성하는 명령어

$ git remote add origin [URL]

origin : 원격저장소의 단축이름으로 다른 이름으로 지정가능.
[URL] : 원격저장소에서 생성한 repository URL을 작성.

$git remote : 위치한 디렉토리 내 생성된 원격저장소 확인
$git remote -v : 원격저장소 조회하기
$git remote rm origin : 원격저장소 삭제하기


원격저장소와 연결할 로컬저장소 repository를 우선 작업합니다. 저장소 생성 후 commit 까지 완료되면 초기 작업은 끝났습니다.

user@DESKTOP-B5JORJB MINGW64 ~/eced/학습/git/javascript (master)
$git remote add javascript1 https://github.com/example/1234.git

user@DESKTOP-B5JORJB MINGW64 ~/eced/학습/git/javascript (master)
$ git remote
javascript1 

user@DESKTOP-B5JORJB MINGW64 ~/eced/학습/git/javascript (master)
$ git remote -v
javascript1     https://github.com/example/1234.git (fetch)
javascript1     https://github.com/example/1234.git (push) 

02 원격저장소에 밀어넣기 (push)

원격저장소 밀어넣기

로컬저장소 repository에 있는 파일을 원격저장소에 반영합니다.

$ git push origin master

내 로컬저장소 master branch에서 원격저장소 origin에 반영해라

origin : 원격저장소의 단축이름으로 다른 이름으로 지정가능.
master : 원격저장소에서 생성한 repository URL을 작성.

user@DESKTOP-B5JORJB MINGW64 ~/eced/학습/git/javascript (master)
$ git push javascript1 master

정상적으로 원격저장소에 repository 파일이 반영되었습니다.

📒로컬저장소 수정하고 원격저장소에 반경하기

로컬저장소에 있는 파일 수정 후 다시 commit 작업 해야합니다.

수정된 파일을 확인해보면 commit을 하라는 안내가 나와요.
commit 후 다시 $ git push javascript1 master 작성해서 정상적으로 원격저장소의 내용도 수정할 수 있습니다.


03 원격저장소 복사하기 (clone)

복사하기

원격저장소 파일은 로컬저장소로 복사합니다.

$ git clone [URL]

04 원격저장소 동기화 (pull)

동기화

pull은 원격저장소 파일을 로컬저장소로 동기화합니다. (파일이 덮어씌워진다.)

$ git pull origin master


로컬저장소에도 있는 파일을 원격저장소에서 수정 후 pull을 진행했어요.
(pull 작업을 위해 해당 파일에 원격저장소 연결 작업도 같이 진행)

pull을 사용하면 원격저장소 추가한 내용으로 파일이 동기화 되었어요.

05 원격저장소 동기화없이 가져오기 (fetch)

동기화없이 가져오기

fetch는 원격저장소 파일을 로컬저장소로 동기화하지 않고 데이터를 가져옵니다. 따로 병합을 진행하거나 읽을 수 있는 전용 branch에서 동기화된 파일을 확인할 수 있습니다.

$ git fetch origin
user@DESKTOP-B5JORJB MINGW64 ~/eced/학습/git/javascript/collaboration (master)
$ git fetch col
user@DESKTOP-B5JORJB MINGW64 ~/eced/학습/git/javascript/collaboration (master)
$ git checkout col/master

user@DESKTOP-B5JORJB MINGW64 ~/eced/학습/git/javascript/collaboration ((af30ab6...)) 
$

fetch를 해서 로컬저장소로 동기화할 경우 파일이 업데이트가 안 돼 있습니다. fetch기존 파일을 동기화 시키지 않고 특정 branch에서 변경된 내용을 확인할 수 있습니다.

$ git checkout origin/master

branchmaster에서 af30ab6...로 변경됩니다. 해당 브랜치에 checkout 했을 때 수정된 파일을 볼 수 있습니다.

profile
🙄

0개의 댓글