Git정복_최종_진짜최종_마지막_제발

ayleen·2022년 1월 9일
1

지난 프로젝트때 깃을 활용해서 팀원들과 협업을 했어야했다.
하지만 4명 중에 누구 하나 깃을 제대로 활용하는 방법을 몰라 거의 이틀에 한 번 꼴로 충돌을 경험했다. 충돌이 날 때마다 제대로 해결하지도 못해서 아까운 시간도 버리게 되고, 우리는 몇 번의 충돌을 경험한 끝에 깃을 사용하지 않기로 결정했다.
만약 나 하나만이라도 제대로 깃을 사용하는 방법을 알았더라면 조원들이 더 편하게 프로젝트를 진행했을텐데 하는 생각이 프로젝트 기간 내내 떠나질 않았다.
지금은 이미 프로젝트가 끝나버렸지만 다음에 다시는 이런 시행착오를 반복하지 않도록 제대로 배워둬야겠다.




Git


여러개의 코드, 이미지, ppt, 한글 등의 파일을 따로 만들지 않고도 이전 코드 이력들을 파일을 변경한 내용, 시간, 변경한 사람을 추적하여 저장/관리 할 수 있다.
즉 파일의 모든 변경사항들을 한번에 관리해준다.
같은 프로젝트 파일들을 여러명이서 공유하고 관리할 수 있도록 지원한다.
한 사람이 새로운 코드를 업로드하면(push) 나머지 팀원들이 다운로드하여(pull) 공유할 수 있다.
이 때, 각자의 컴퓨터 저장 공간을 'Local repository'라고 부르고, 모두가 공유할 수 있는 저장소를 'Remote repository'라고 부른다.
다양한 사람들이 open source로 올려둔 프로젝트들을 확인할 수도 있다.




git 사용법 기초


  1. Git 설치
    • Eclipse에 플러그인으로 git이 내장되어있다. 다른 도구를 사용할 시에는 git을 설치해야한다.

  1. 프로젝트를 깃이 수정/관리 할 수 있도록 설정

    • 프로젝트를 마우스 오른쪽 클릭 > Team > Share Project... > Repository Create > Repository Directory 폴더 이름 설정 (이 폴더 안에 있는 모든 프로젝트를 관리) > Finish


    • 프로젝트에 [gitTest master]라고 표시되어 있는 부분이 git으로 관리되고 있다는 표시이다.


  1. 저장할 파일을 목록에 올리기

    • 파일 우클릭 > Team > Add to Index (Git Staging에서 마우스 드래그로도 가능)
    • 다시 우클릭 > Team > Commit... (실제 현재 상태가 저장됨)

    • 현재 저장할 파일이 Staged Changes에 리스트업 되어있는 것을 알 수 있다.
    • 저장할 파일에 멘트를 작성하고 커밋하기.

    • git이 Main이라는 자바파일이 생성된것을 기억하게 됨.

  1. 수정한 파일을 저장하기.

    • 수정이 일어난 파일 마우스 오른쪽 > Team > Add to Index
    • Commit Message에 자세하게 작성해주는것이 좋다.
    • 새로운 파일(git에 아직 저장되지 않은 파일)은 물음표 표시가 붙어있다.
    • 같은 방식으로 저장해주면 된다.

  1. 파일이 잘 저장되었는지 확인하는 방법

    • 프로젝트 우클릭 > Team > Show in History


    • 각 파일을 열어보면 어떤 부분이 변경되었는지도 확인이 가능하다.

  1. 파일 되돌리기(복원)

    • Show in History에서 돌아가고싶은 시점을 우클릭 > Reset > Hard

    • 모든 파일들이 그 시점으로 돌아간다.



GitHub 사용법 기초


  1. 새로운 저장소 만들기(보통 팀장이 만듦)

    • GitHub 홈페이지에서 로그인 후 New repository

    • Repository name = 저장소 공간 이름

    • Public은 모두에게 공개됨, 무료 이용 가능.

    • Private은 지정된 인원에게 공개 가능하지만 일정 인원 초과시 요금을 지불해야 사용 가능.

    • Create Repository 누르면 생성됨.

      가운데 파란 박스 안의 주소가 저장이 되는 주소임.

    • 오른쪽의 Settings에서 팀원 초대 가능

    • Invite a collaborator를 누르면 사용자를 검색해서 초대할 수 있음.

    • 초대받은 팀원들은 각자의 가입 메일주소로 초대 메일이 수신됨. 초대 승낙 버튼을 누르면 가입이 완료됨.


  1. 새로운 프로젝트를 공유할 수 있도록 업로드

    • 프로젝트 우클릭 > Team > Push Branch 'master'...
    • URI 부분에 원격 저장소 주소를 복사 붙여넣기 해준다.
    • User 칸에 github 아이디와 비밀번호를 기입해준다.

    • 깃허브 페이지를 새로고침하면 프로젝트가 업로드되어 있는 것을 확인할 수 있다.
    • 프로젝트 전체 목록을 올리고싶다면 프로젝트 마우스 오른쪽 > Team > Add to Index

  1. 팀원들이 프로젝트를 공유받기(Clone)
    • Project Explorer 에서 마우스 우클릭 > Import > Project from Git > Clone URI > github 사이트에서 해당 프로젝트 repository에서 Clone or download 버튼클릭 uri 복사
    • 복제해온 프로젝트를 어디에 저장할지 설정
    • 과정을 마치면 같은 프로젝트를 공유하게 됨.
    • 수정한 파일을 Team > commit으로 저장

  • commit 할 때마다 변경상태가 저장됨 (프로젝트 이름 오른쪽에 숫자와 화살표가 나옴 = 푸쉬할 사항이 두가지라는 의미)
  • push branch master 클릭해서 푸쉬하기.
  • 받는 사람은 Team > Synchronize Workspace : 풀 받을 사항이 있는지 없는지 확인할 수 있음. (푸쉬할때와 마찬가지로 화살표와 숫자로 표시가 된다.) 확인 후 Team > pull 로 받아올 수 있다.



기억할 것

충돌방지


1. 서로 같은 파일을 수정했을 경우.


HEAD 부분은 내가 수정했던 부분
그 아래 부분은 원격저장소에서 받아온 부분
-> 사용할 부분을 골라서 남기고 나머지는 지워버린 후 커밋하면 Commit message에 충돌해결부분이 입력되고 커밋하면 파일에 빨간 표시들이 사라짐.

2. 충돌이 일어날 수 있으니 처음에 각자 작업하는 클래스를 분리해서 역할 분담 할 것.

3. pull 받기 전에 내가 작업중이던 파일을 commit할 것.
(커밋하지않고 pull할 시에 저장소에서 가져올 수 없다는 에러가 나온다.)

4. push 전에 모든 pull 내역을 받았는지 확인하기.
(다른 사람들의 pull내역을 받지 않고 새로운 수정 내용을 push하면 엉킨다.)
순서는 commit > pull > push





참고자료
git강의 : https://www.youtube.com/watch?v=8gyquB3VNNs&list=PLRYL8FHwJMhAB8kKp7iJVojp6fNxVH4CP&index=3

profile
asdf

2개의 댓글

comment-user-thumbnail
2022년 1월 9일

~~ 완벽하네요 ㅋㅋㅋㅋㅋㅋㅋ

  1. 파일 되돌리기(복원)
    Show in History에서 돌아가고싶은 시점을 우클릭 > Reset > Hard

는 알아두기만 하고 history는 보통 건드리지 않습니다.
왜냐하면 기존의 했던 코드들이 기록도 안남은채로 다 날라가기 때문에!
history를 건드리고 싶으면 각자 코드를 잘 저장 후 건드리세요~

1개의 답글