2일차 IT 프로젝트 관리 도구 - GIT(실습)

정지원·2024년 2월 21일
0

에이블 스쿨 복습

목록 보기
3/51
post-thumbnail

1. Git 최초 설정

무작정 Git을 배워서 이 설정을 생략하고 Commit을 진행하면 이 오류가 발생한다.

git config --global user.name "설정이름"
git config --global user.email "이메일작성"

이런식으로 이름과 이메일을 설정해줘야한다.
그리고 이건 powershell이 아닌 git bash 터미널에서 명령 해야한다.
만약 잘못 작성했다면 다시 한번 같은 방식으로 덮어씌운다(?)는 느낌으로 재작성을 해주면 된다.

Git 실습

1. Git- commit 커밋하기

이렇게 생성한 work2.txt 처럼 staged Changes에 들어가기 위해 add(+) 표시를 누른다. 그리고 Commit 한다. (단축키는 Ctrl + Enter)

참고로 위 message 창에 아무것도 작성하지 않으면 이름을 설정해달라고 에러처럼 떠서 쓴이처럼 당황할 수 있으니 이름작성하고 넘어가도록..ㅎ

2. Git graph 설치

Extensions를 누르고 Git Graph 설치하여 학습하면 도움이 된다.

3. Branch 생성

main project에서 직접 하지 않고 실험적인 작업을 하거나 병렬로 작업하고 싶을 때 생성한다.

원하는 대상에 마우스 우클릭 >> Create Brance >> Name 작성

name은 feature/login으로 하자

4. 생성된 Branch에 commit

branch를 생성하였다. 생성한 브랜치(feature/login)에 checkout 을 하고 해당 브랜치로 이동하게 한다.

- checkout

  • 브랜치 간 이동할 때 사용한다.
git checkout [branch-name]

위 처럼 명령을 사용하면 입력한 해당 브랜치로 이동하게 된다. 또 다른 방법은 해당 Branch를 더블클릭하면 된다.

  • 파일을 복원할 때 사용한다.
git checkout [file]

이걸 사용하면 특정 파일의 변경 내용을 되돌릴 수 있다.

5. 기존 main Branch에 새로운 파일 연결

checkout을 다시 main으로 바꿔주고 새로운 파일 main.txt를 생성하여 commit을 해준다.


그럼 이런 결과를 얻을 수 있다.
그림처럼 feature/login 브랜치에서 작업을 실시하더라도 main에는 영향을 끼치지 않는다. 그래서 여러사람이 작업을 하기 편하다.
(하지만 브랜치는 2개로 찢어질 수 밖에 없음)

6. merge

이제 작업을 하다가 main과 feature/login에서 원하는 결과물을 성공적으로 얻었다면 merge를 해줘야 한다.

만약 실패했다면 feature/login 브랜치는 그냥 두고 main에서 다시 뻗어서 가면 된다.

- merge 특징

  • 서로 다른 브랜치의 변경 내용을 하나로 통합하는 과정을 나타낸다. 주로 기능 개발이나 버그 수정을 위해 생성된 별도의 브랜치에서 작업한 후, 그 변경 내용을 기존 브랜치에 통합할 때 사용한다.
    1) 브랜치 이동: 브랜치를 병합하려는 대상 브랜치로 이동한다. 예를 들어, master 브랜치로 이동한다.
git checkout master

2) 병합 실행: 대상 브랜치에 소스 브랜치의 변경 내용을 병합한다. 아래 명령어는 feature-branch에서 변경한 내용을 master에 병합하는 예시이다.

git merge feature-branch

이 명령을 실행하면 Git은 두 브랜치의 변경 내용을 자동으로 통합하려고 시도하며, 가능한 경우 자동으로 병합을 수행합니다.

다시 실습으로 넘어와서

merge를 하면 main이 feature/login을 결합하는거니 main에 checkout한 상태에서 merge를 실시한다.
위 merge처럼 명령어를 입력해도 되고 다른 방법으로는

feature/login에 마우스 오른쪽 >> Merge into current branch

이렇게 merge되어 결과물이 나온다.

7. GitHub 사용

1) GitHub.com에서 로그인 후 우측 상단에 + 버튼에 New repository를 클릭하여 새로운 저장소를 만든다.
2) Repository name에 원하는 이름을 작성 후 생성!
3) 생성 후 나온 아래와 같은 화면에서 https를 클릭 후 복사

4) 다시 visual studio로 가서 ...이렇게 점세개 클릭 Remote >> add Remote
5) 복사했던 주소 입력 후 Remote name을 orgin 으로 입력한다.

아래와 같이 main/origin 으로 나온다.

6) push를 하면 다시 GitHub의 원격 저장소에 위에서 작업한 내용이 올라간다.
아래와 같이 push를 하면 GitHub서버에 내가 생성한 서버에 올라간다.

8. 다른 사람과 협업 시뮬레이션 (compact) 충돌

1) 새로운 visual studio 창을 생성

2) Source Control에서 Clone Repository로 연결 후 주소 입력

3) 새로운 폴더를 생성하여 그 폴더로 Clone을 한다. 그럼 양쪽 다 같은 정보를 가진 데이터가 생성된다. (R)

4) 기존의 데이터에 새로운 데이터 common.txt를 생성하여 commit을 한 후, push로 서버에 저장을 해준다. (L)

5) 새로 생성한 창에는 실험에 동참하기 위해 pull로 서버에 있는 데이터를 가져온다. (R) 양쪽 다 같은 상태가 되었음

6) 기존의 데이터에 2번째 줄을 수정하고 commit
7) 다시 4번째 줄 수정하고 L4 commit

8) 새로 생성한 데이터는 3번째 줄 R3 수정하고 commit
9) 다시 4번째 줄 수정하고 R4 commit

아래 그림과 같이 commom.txt파일이 4번째 구간에서 compact(충돌)이 발생하게 된다.

10) 기존의 데이터인 L 좌측데이터에서 push를 하여 서버에 저장한다.

11) 새로 생성한 데이터 R 우측데이터에서 push를 하려고 하면 반려가 된다. 이유는 수정한 부분에서 충돌이 발생하기 때문이다.

12) 그래서 pull 을 하여 직접 수정한 후, Resolve in Merge Editor를 해준다. complete merge 하고 다시 commit 후 push를 해준다.

최종 적으로 이런 식으로 Graph가 나온다.

회고

이처럼 협업에 있어서 Git의 사용은 매우 중요한거 같다.

  • 강사님께서 주신 팁으로는 프로젝트를 진행하다 에러가 나거나 실수했을때, 절대로 혼자서 해결하려 하지 말고 팀의 에이스나 잘하는 분을 찾아서 해결하라고 하셨다.

  • 그만큼 Git은 한번 꼬이면 복구하기 쉽지만 할줄 모르면 한 없이 꼬여서 답이 없어 진다고 하셨다.

실습을 다음번에도 반복해보자 10분도 안걸릴듯 하다.

profile
뒤늦게 프로그래밍을 시작한 응애

0개의 댓글