깃 허브 만만히 보지도 말거니와 너무어렵게도 생각하지 말거니와~

필자는 금요일에 깃 테스트를 보면서 뭐 별거 있겟나 싶었다. 하지만, 깃 테스트를 통해 내가 얼마나 깃에 대해 무지했는 지 다시 한 번 느낄 수 있었다.

다음 내용은 내가 깃 테스트를 보면서 마주한 에러와 그에 대한 해결책 위주로 담았다. 이로 인해 느낀 바와 더불어 깃의 간단한 사용법 정도로 마무리 하고자 한다.

대개 나는 깃이라고 해봤자,
git add .
git commit -m "~~~"
git push origin 브랜치 명
정도겠지라는 간단한 생각을 했다. 하지만, 그것이 아니었다.
테스트 및 과제 내용은 다음과 같았다. 개인 레포지 토리를 만들어서 처음부터 끝까지 하는 것이었다. "그래 올 것이 왔구나. 그러나 어쩌겠나! 해야지!" 이 생각에 하나씩 과정을 밟아갔다.

✔️ Test


🗣️ 각 과정에서 git 용어를 사용하면 명령어 힌트를 드릴 수 있어서 일부러 애매모호하게 작성했습니다. =>애매 모호 함을 잘 파악하는 것이 관건이었다. "올린다, 이동한다, 생성한다, 만든다.. 등등" 문맥을 잘 파악하시고 테스트를 진행해주세요.
  • Task 1: Git Repository 생성 & Git 폴더 초기화
    1. 자신의 github에 wecode 라는 repository를 만든다.
      -> 뭐 여기까지는 깃허브에서 만드는 것이니 별로 어렵지 않았다.

      💁‍♂️ README.md 파일은 아래 Task에서 만들 예정이어서 아래와 같이 체크 해제해주세요!

    2. 내 컴퓨터에서 Desktop > test 폴더 밑에 wecode라는 폴더를 만든다.

이것 역시 터미널에서 간단하게 후딱 만들었다.

3. `wecode` 폴더에서 git을 사용할 수 있도록 초기화 한다.
-> 여기서 git init이라는 코드를 터미널에 치면 초기화가 된다. 
  • Task 2: Git 폴더에 파일 생성 & 내용 작성 및 Repository에 push
    1. wecode 폴더 하위에 1부터 50의 자연수 중 짝수를 구하는 함수가 있는 파일을 생성한다.
    - 파일 이름은 test.js
    - 결과값은 배열에 담아 return 해주세요.
    -> touch test.js
    vi test.js
    i=insert 문서에 함수 입력 후,
    esc :wq enter-> 저장 후 종료
        
  1. github repository 에서 볼 수 있도록 올린다.
  • add, commit 후 생성한 repository로 push 해주시기 바랍니다.
  • (push 하기 전에 내가 생성한 디렉토리와 repository 주소가 연동되어야 합니다.)
    -> 즉, 이 말인 즉슨 내 레퍼지토리가 클론이 되어 있어야 한다는 소리다.

. github 레파지토리에서 볼 수 있도록 올린다. (main이 기본 branch)


이 메인 혹은 마스터 개인 레퍼지 토리에 올려줘야 한다. 그러기 위해서는 해당 레퍼지 토리를 내 현재 폴더와 깃 허브를 연동시켜줘야 한다.

git add .

git commit -m "Add: test.js"

git branch -M main

git remote add origin https://github.com/minchodang/wecode.git 이 부분은 위의 코드를 누르면 클론하게금 복제 주소가 나오니 그걸 붙이면 된다.

git push -u origin main
-> 이런 식으로 하면 끝이다. 사실상 어려운 건 전혀 없다. 필자 역시 여기까지는 무난하게 했다. 문제는 그 다음부터 생기는데...

  • Task 3: 새로운 branch 생성 & PR 메시지 작성
    1. feature/README 브랜치를 생성하고, 해당 브랜치에서 아래의 내용으로 README.md 를 만든다.
      -> 자! 일단, 필자가 처음에 말린 구간은 바로 이 브랜치 생성이었다.
      명령어는 알고 있었지만....

git branch 브랜치명

생성한 브랜치로 진입

git checkout 브랜치명

README.md 파일 생성

vi 파일명

파일 작성 후, esc 누르고 :wq(저장)쓰고 엔터치고 나온다.
-> 이렇게 쉬운 일련의 과정이다. 그런데 뭐가 문제인가?
바로 바로 브랜치 명을 내 맘대로 내 이름으로 해 버린것...

이게 사실 나중에 알고보니, 나만 그런 것이 아니었다 ㅋㅋㅋㅋ
그래서 부랴 부랴 다시 폴더 명을 터미널로 바꾸고, 다시 하면 되겠지 하고 시작했다.

그런데 폴더명 바꾸는 게 아니라 브랜치 명 바꾸는 것이었다. 그래서 새로 만들었는데... 이런 에러가 계속 나더라..ㅜㅜ

그래서 여기서부터 엄청 얼을 탔다. 황급히 은비님께 이 부분에 대해 문의를 하니....

내가 무슨 잘못을 했는 지 점점 알게 되었다. 결론적으로 각설하면, 내가 브렌치를 엄청나게 만들어 댄 것이다. 즉, 하나의 레포지 토리 안에 메인 혹은 마스터 그 안에 개인 브랜치를 연결시키는 것인데... 필자는 그 메인 안에 브랜치의 브랜치를 만들어 버린 것....
그러니까 나는 결국 저 브랜치가 없는 줄 알고 계속 만들어 재낀 것... 계속 브랜치 있다고 나온 것이다.


그래서 브랜치를 삭제하고 난리를 쳤다. 그럼에도 불구하고 문제는 잘 해결되지 않았다. 뭐가 문제일까? 곰곰이 다시 생각해 봤다. 은비님도 줌으로 계속 이렇게 저렇게 해보라고 하셨지만, 처음에는 큰 도움을 받았지만, 결국 내 문제이기에 내가 해결하는 것이 맞았다. 그런데 애초에 잘못된 시작을 한 것이라고 생각했다. 브랜치의 이중 중첩과 그 안에서 계속 잘못된 꼬인 add, commit, push. 실제 깃 허브 레포지토리로 가보니, 개판 오분 전이었다...

그래서 결국 나는 과감히 해당 레포지토리를 삭제하기로 했다. 그리고 처음부터 다시 시작했다. 천천히. 그리고 머릿 속에서 깃의 구조를 생각하면서....

    - 오늘 시험에서 사용했던 git 명령어 최소 3개 이상 정리
    - `markdown syntax`를 적절히 사용해주세요.
    -> 이 마크다운 신텍스가 뭔지 몰라서 은비님께 여쭤보니 이런 것도 있었다. 
    
    https://markdownlivepreview.com/


해당 사이트에서 직관적으로 어떻게 마크다운 신텍스를 이용하는 것인지 알았고, 적용할 수도 있었다.

그렇게 처음부터 브랜치를 제대로 만들고 커밋과 푸쉬를 제대로 하니 잘 되었다.

2. `feature/README` 브랜치에 올린다.

git add .

git commit -m "Add : README.md"

git push origin 브랜치명 (여기서는 feature/readme)

  1. feature/READMEmain 브랜치로 pull request를 날린다.
    pr은 기존처럼 깃헙 레포에 들어오면 바로 보인다. 올리면 땡이다.
  • Task 4: 완료한 과제를 구글 클래스룸에 제출
    • 시험 시작 후 구글 클래스룸에 과제를 열어드립니다.
      git log를 하면 이렇게 잘 들어간 것을 볼 수있다.
    • 해당 과제에 commit log가 담긴 스크린샷과 repository 주소를 첨부해주시면 시험 완료!
    느낀점
    결국 1시간 짜리 시험이자 과제를 1시간 정도 더 걸려서 완료했다. 은비님도 역시 시간이 중요한 게 아니라, 이렇게 내가 에러에 만났을 때 어떻게 대처를 하고 문제에 대한 원인을 해결하는 것이 중요하다고 했다. 맞는 말이다. 결론 적으로 정리하면, 내 문제의 원인은
  1. 너무 성급하게 하려 하다보니 중첩 브랜치 발생

  2. 그 안에서 중첩 파일 형성.

  3. 그로 인해 메인에 푸쉬할 것이 계속 꼬이면서 오류.

    조급함이 결국 화를 부른다는 것을 알게된 케이스였다.

    아래는 깃 사용시 주요 명령어 정리해 둔 블로그다. 참고해 보시기 바란다.
    https://velog.io/@delilah/GitHub-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C

좋은 웹페이지 즐겨찾기