Infra/Git

[220210][Git] fetch, merge를 통한 상대 저장소 브랜치 커밋 이력을 내 저장소로 가져오기

kth990303 2022. 2. 10. 23:15
반응형

우아한테크코스에서 알렉스의 노트북으로 페어 프로그래밍을 진행하면서 알렉스의 저장소에 commit 및 push를 진행하였다.

따라서 미션을 마무리한 후, 알렉스의 저장소 커밋 브랜치를 내 저장소의 브랜치로 가지고 오려고 했다.

그래서 미션 가이드를 참고했는데...

??

엥? 방법을 안알려줬다ㅋㅋㅋ

ㅠㅠ

가이드에서 이 부분은 각자 해결하라고 과제로 내던져주었다...

다행히 알렉스가 함께 봐주면서 금방 해결할 수 있었는데,

 

아래 작업을 거치면 된다.

 

1. git remote add {축약할 이름} {가져올 상대의 저장소}

먼저 리모트에 어떤 저장소를 가져올 것인지 입력해주어야 한다.

git remote -v 를 통해 현재 리모트에 어떤 저장소가 입력돼있는지 확인해보면 아마 origin으로 내 저장소만 존재할텐데,

상대의 저장소 주소를 입력해주어 리모트에 저장해주자.

나의 경우는 git remote add yx https://github.com/yxxnghwan/java-racingcar 로 입력해주었다. {축약할 이름}에는 자기가 편한 이름 아무거나 지정해주면 된다.

 

2. git fetch {축약네임} {브랜치명}

나의 경우는 알렉스의 특정 브랜치(이하 finish라고 하겠다.)만 가져오면 됐기 때문에

git fetch yx/finish 로 입력해주었다.

이렇게 하면 알렉스의 finish 브랜치 코드들만 가져와준다.

다만, 아직 merge는 하지 않았기 때문에 인텔리제이에 가져온 코드들이 보이진 않을 것이다. 

 

3. git merge {축약네임/브랜치명}

이제 git merge yx/finish 와 같이 merge 해주면 인텔리제이에도 보이고 커밋 이력도 보일 것이다.

커밋 이력은 git log를 통해 확인하면 되며,

만약 한글이 깨지면 git bash를 통해 확인하면 잘 보일 것이다.

 

4. (내 저장소에 push 희망할 경우) git push origin {내 브랜치명}

이제 내 저장소에 push를 해주어야 했기 때문에 git push origin kth990303과 같이 입력해주었다.

짜잔~ 알렉스가 커밋한 코드들이 내 저장소에 push되었다.

이렇게 하면 내 저장소에까지 push 완료!

맨 위에 내 아이디로 커밋된 내용들은, 추가로 리팩토링할 점이 보여 별도로 커밋한 것이다.


협업 경험이 처음이기 때문에 fetch 작업은 조금 낯설었는데 이번 기회에 잘 배워둔 것 같다!

 

git 공부도 해야되는데...

1월달에 좀 해둘걸 그랬다.

 

우테코 캘린더 보니까 git 강의도 따로 있던데, 그 때 풀집중하면서 들어야겠다 ㅎㅎ

반응형