📌읽기만 해서는 개념이 안잡히니 내 repository에 git 설치해서 이것저것 테스트 해보기.
git: 코드 변경 점 기록
github: 팀원들과 코드를 공유하고 수정하고 협업하는 도구.
git 설치 후 terminal 에서 git용으로 생성된 폴더명을 지정(git init)
파일 코드 작성 후
git add 파일- git commit -m 으로 코드 변경 점을 기록.
git add . 는 해당 폴더 아래의 모든 파일을 지정->commit으로 확실히 저장.
(add만으론 저장이 안됨)
git log로 변경점을 확인하고 변경점으로 돌아갈 수 있다.
git status는 현재 상태를 보여줌. 현재 브랜치명과, add랑 변경됐는지 확인.
빨간색 파일명이 뜬다면 지정은 됐지만 저장이 안된 파일이 있다는 뜻
협업은 깃헙에 레포지토리 주소를 우선 등록해야 함.
레포지토리의 주소를 복사해서 위와 같이 등록.
push: 코드 업로드
pull: 다른 팀원과 코드 업로드 충돌을 방지하기 위해 우선 깃허브에 있는 코드를 다운하는 명령어.(코드를 올릴 땐 pull->push 여러 번 때리기)
clone: github에 있는 프로젝트 복사하기.
git clone <github 주소> . (폴더를 이미 만들었다면 . 붙이기)
혹은
fatal: Need to specify how to reconcile divergent branches. 에러가 뜬다면?
git config pull.rebase false
git pull origin main
please tell me who you are 메시지가 뜬다면 깃허브 계정 등록.
git config --global user.email "abc1234@gmail.com"
git config --global user.name "nickname"
나뭇가지란 뜻으로 작업을 할 수 있는 독립공간이란 개념.(하위폴더 개념으로 생각하면 될 듯)
코드를 작성하다 여러 버전으로 작성하고 싶을 때, 여러 branch를 만들어서 각 branch에서 각 버전의 코드를 작성하면 유용하다.
기본적으로 할당되는 branch는 master.
git branch k ->k라는 branch를 만드는 명령어.
git branch -m <새 브랜치 이름> : branch 이름 변경
ex)git branch -m apple : 현재 branch 이름을 apple로 변경.
git checkout/switch <전환할 브랜치 이름> : 다른 branch로 이동
git merge <브랜치 이름> : 해당 브랜치와 master 기본 브랜치와 병합하는 명령어.
branch 개념을 대충 이해하니 레포지토리 주소를 복사해서 파일을 가져올 때 쓰는 명령어의 개념이 좀 이해가 간다.
git branch -M main: git을 생성함과 동시에 생긴 master 공간을 main이라는 이름으로 바꾼 거.
그러니까 팀원끼리 각 branch에서 맡은 코드를 작성 한 후 마지막에 합병할 때 쓰면 좋은 코드.
그럼 각 branch 생성은 어떻게 하는 거지? 다음 주 강의에서 확인해봐야겠다.
같은 위치의 코드를 팀원과 동시에 수정한 경우 파일에 에러 메시지가 뜸.
이경우 팀원과 상의한 뒤 수정하면 해결.
팀프로젝트를 하니 내가 생각지도 못한 오류를 잡아줘서 고마운데, 오타같은 걸로 오류가 나면 그만큼 민폐라 미안하다ㅠ.ㅠ 나땜에 마감시간이 훨씬 길어져서 미안할 따름이다ㅠ.ㅠ
오타 해결방법은? -> 에러메시지 주의깊게 보기밖에...그리고 빨리빨리!
그리고 좀 더 넓게 봐야할 것 같다. 내가 생각한 것 보다 훨씬 더 넓게.
자잘한 것은 그래도 금방 해결이 되지만, 크게 꼬이면은 그만큼 시간을 많이 잡아먹기 때문에, 자잘한 것에 집중하기 보다는 먼저 큰 개념을 암기하고 이해하는 게 우선순위인 것 같다.
github 사용법 익히기.
팀플 할 때 유용한 공유 사이트 많았고,
코드 작성할 때 어려웠던 점
1)한 페이지가 아니라 여러 페이지에 수정한 결과를 적용시켜야 하는 점이 어려웠다.
: 현실과 타협후 일단 개인페이지에 수정 버튼을 추가해서 수정 페이지로 이동.
정보를 입력하면 firebase에 팀원 정보가 저장됨-> 개인페이지로 이동 후 해당 정보가 업데이트 됨
2)firebase에서 경로를 가져오는데, 도무지 안돼서 튜터님이랑 팀원분들게 많은 도움을 받았다.
입력정보값을 받아서 firebase에 추가하는 코드. 내가 알고 있는 건 이것뿐이었고, 처음에는 그냥 수정 코드 검색해서 몇 줄 수정하면 금방 해결되겠지 생각했다.
try {
await updateDoc(docRef, {
name: "New Name", // 필드 업데이트
age: 30, // 필드 업데이트
});
console.log("Document updated successfully!");
} catch (e) {
console.error("Error updating document: ", e);
}
}
결과는 여러 번 시도했지만 실패...
하지만 삭제 후 새로 추가하는 편이 더 쉽다는 튜터님의 조언에 삭제 코드를 찾아 작성했으나(또한 에러를 빨리 수정하는 방법은 검사에서 콘솔창을 늘 확인하는 것을 배움) 역시나 에러.
왜인가 다시 여쭤보니, 객체 선언을 하지 않음
기존
객체 선언.
+그럼에도 계속 되는 에러메시지.
(캡쳐가 없는데 앞으로는 기록해둬야겠다.)
이유인즉슨 변수랑 경로를 홀수나 짝수로만 지정해야 하는데,
나는 삭제 코드를 홀수, 추가 코드를 짝수로 지정하니 경로가 어긋나 서로 다른 곳에 지정이 되는 것이다.
이것도 튜터님의 도움으로 새로운 객체를 만들어 하나로 통일.
또다시 실패. 팀원분들의 도움을 받아 해결
docs는 여러개의 문서 목록.
doc은 개별 문서.
그런데, 내가 개인멤버 정보만 삭제하고 저장만 하면 될 것을 엉뚱하게 내가 docs를 쓰고 또한 doc 객체를 import에 추가->선언을 하지 않았기 때문에 firebase에 저장이 안되고 실행이 안되는 것.
팀원분께 정말 감사했다..
3) github이나 새로운 공유 사이트에 적응, 처음 듣는 용어도 많아서 이해하기 어려웠고, 사용법을 익히느라 정작 팀프로젝트가 한창 진행일 때 헤매고, 마지막에서야 저 수정 기능 추가한다고 마감기한을 늦춰버렸다(원래는 금방 끝날 프로젝트였는데ㅠ.ㅠ)
4) 완성됐다고 생각했는데, 이래저래 자잘한 오타나 구조가 꼬여서 실행이 안됨.
팀원분들이 많이 도와줘서 어떻게든 연결했다. 너무 죄송하고 감사하다.ㅠ.ㅠ
5) 아마도 내가 git 명령어를 잘 못 써서 다른 팀원분이 작성한걸 덮어 지워버리는 실수를 한 것 같다ㅠㅠㅠㅠㅠ pull->push 순서 꼭 기억하기!
1) 모르면 팀원분들이나 튜터님께 바로 검색하거나 물어보기.(대부분 기초적인 거라 검색으로 해결 가능할 듯)
2) github이 유용한 만큼 충돌이나 지워지는 위험도 크기에 순서나 명령어에 유의하며 쓸 것. github이 앞으로 많이 쓰일 것 같으므로 개념 확실히 익히기.
3) 코드 작성 시 에러는 대부분 검사->콘솔창에서 확인 후 검색하면 대부분 해결 -> 최대 30분을 해도 안되면 튜터님 헬프.
4) 다른분들처럼 하기에는 내가 너무 실력이 부족하므로, 잘 상의해서 역할분담 맡기.
내가 이건 할 수 있겠다 싶은 것도 막상 해보니 너무 어려웠다. 내가 뭘 알고 모르는지 명확히 알면 협업할 때 도움이 많이 될 것 같다.(->TIL 기록)
5) 내 의사를 전달할 때 다른 분들도 이해할 수 있게 용어 주의하면서 쓸 것.
6) 에러가 발생하면 웬만하면 캡쳐하고 검색하고 해결하기.