2022.10.28.FRI

ronglong·2022년 10월 28일
0

코드스테이츠 Day7

< git : The information manager from hell >

  • 주요 기능 : 버전 관리, 백업, 협업
  • 저장소 : remote repository(온라인) -- local repository > staging area > work space
  • 명령어
    • init 초기화 : git 저장소 생성. ls -la로 .git 확인
    • status : 파일 상태 확인
    • add : work space to staging area
    • commit : staging area to local repository. 스냅샷을 만들어주는 작업
    • commit -am : -a(한 번이라도 commit된 적 있으면 add 생략하고 한 번에 commit), -m(commit message)
    • log : commit 내역 확인
    • push : local repository to remote repository. 'git push (내 저장소 닉네임 origin) (브랜치 이름)'
    • pull : other remote에서 내용 받아옴. 'git pull (상대방 저장소 닉네임 pair) (브랜치 이름)'
    • clone (remote repository 주소) : remote 에서 local로 복사
    • remote add : local에 remote 연결
    • remote remove : 연결된 remote 해지
    • remote -v : 연결된 저장소 확인
    • branch : branch 목록 확인
    • switch -c : branch 새로 생성
    • checkout : branch 이동
    • reset HEAD^ : 최신 commit 취소
    • stash : 임시 저장
  • 협업하다가 충돌 있으면 편집기 켜서 수정 후 다시 add, commit, push 하면 됨

<느낀 점>
페어랑 지정된 협업 시간 2시간 외에, 2시간을 더 헤맨 끝에 오늘 분량을 다 이해하고 끝을 냈다.

이미 git init을 통해 초기화가 된(=.git이 생성된) 폴더(1) 안에서 git clone을 하고, 그 폴더(1)에서 바로 git remote add를 하여 작업했더니 push와 pull에서 계속 에러가 났다.

딱히 실수한 것도 없는 것 같은데 계속 에러가 나서, 개념이 부족한가 하고 오후 세션 듣고 다시 둘이서 해봤으나, 또다시 에러. git은 다른 강습생들도 어려웠는지 원래 종료 시간 후 30분이 지났는데도 아직 줌 미팅이 진행 중이길래 들어가서 질문했다.

그리고 이미 .git이 생성된 폴더(1) 내부에 clone을 받게 되면 .git 디렉토리가 중첩되어 예기치 못한 오류가 발생할 수 있다는 것을 알게되었다.

그래서 새 폴더(2)를 만들고, 거기에 바로 clone을 한 후(No init!), -- clone을 하면 해당 remote repository에 대한 폴더(3)가 생기는데, 그 안에서 ls -la를 해보면 .git이 자동 생성되어있다. 이유는 clone을 했기때문 -- 생성된 폴더(3) 내부에서(cd), remote add를 통해 상대방의(other) remote repository를 연결하여 협업을 했더니 성공적이었다.

이 부분(이미 .git이 생성된 폴더(1) 내부에 clone을 받게 되면 .git 디렉토리가 중첩되어 예기치 못한 오류가 발생할 수 있다)에 대해 미처 학습 자료에 명시하지 못해서 미안하다는 소리를 들었다. 결국엔 해결해서 다행이지만 약간 딥빡이었음.. ㄹㅇ 4시간을 개고생했는디,, 아무리 검색해도 감이 안 오고...

다 끝나고 방금까지 .git이 중첩된 폴더에서는 왜 오류가 생길까 좀 더 찾아봤는데, 정확한 이유는 모르겠지만 branch와 관련된 것 같다. 상위 폴더(1)도 'main' branch를 쓰고, 하위 폴더(2)도 'main' branch를 쓰는 상황에서 push 또는 pull을 하면 git이 길을 잃는거지...

실제로 fatal: Need to specify how to reconcile divergent branches. 이런 문구가 떴었다.

관련하여 내가 찾아본 정보는 아래 링크에.
https://eocoding.tistory.com/m/108

사진은 오늘 고생의 흔적,, 7일 중 역대급이었다.
다음주에 java 시작하면서부터가 진짜라는데,, 부디 괜찮았으면 좋겠다.

0개의 댓글