📌 Public VS Private 저장소 1️⃣ Public 저장소 - 인터넷의 모든 사람이 접근, 검색, 클론O - 누구나 저장소 내용은 변경(push)할수는 X (공동 작업자 권한 또는 허가 필요) 2️⃣ Private 저장소 - 소유자 + 접근 권한이 있는 사람만 접근O 📌 공동 작업자 추가하기 : 공동 작업자와 작업한다는 것은 변경 사항을 저장소에 푸시하도록 허용하는 것 : 저장소 > Setting > Manage access > Invite a collaborator > 상대방이 수락하면 추가 완료! ❕ 공동 작업자라도 프로젝트 Setting에는 접근X 📌 README 파일 : 프로젝트가 무슨 일을 하는지 설명하기 위한 파일 : 헤드헌터나 IT비전공자가 보는 단 하나의 파일 (코드 파일은 잘 ..

🙋🏻♀️ origin/main 브랜치가 의미하는 것은? 💡 원격 추적 브랜치(remote teacking branches) [remote]/[branch] : 원격 추적 브랜치의 한 예인 origin.main은 remote에서 main브랜치의 가장 마지막 커밋을 가리키는 포인터 ✔️ remote 브랜치 조회 git branch -r : git branch랑은 다른 결과가 나올 수 있음! - git branch에 모든 remote branch가 포함된 것이 아님! - 처음에는 remote의 default branch만 포함됨! 🙋🏻♀️ 그럼 local에 없고 remote에만 있는 브랜치에서 작업을 하고 싶다면? git switch [remote-branch-name] git checkout --trac..
📌 Github : 깃 저장소를 위한 호스팅 플랫폼 : 깃 저장소에 대한 협업 및 토론과 관련하여 구축된 기능의 묶음 : 깃허브를 통해 클라우드에 깃 저장소를 넣을 수 있음 → 어디서나 접근O → 사람들과 공유O (협업O) ❕ Git : 로컬 컴퓨터에서 실행하는 버전 제어 시스템 (인터넷, 계정 필요X) ✔️ 깃허브를 사용하는 이유 1️⃣ 코드 백업 (ex. 노트북을 분실했다면?!) 2️⃣ 협업 ❗ 3️⃣ 무료 4️⃣ 오픈 소스 프로젝트 5️⃣ 포트폴리오 6️⃣ 최신 정보 (소셜 네트워킹) ✔️ 클론하기(Cloning) - git clone : 로컬 컴퓨터에 없는 저장소를 로컬로 가져오는 것 git clone [url] : 해당 url에 접근 후 저장소에서 관련정보를 가져와 파일을 로컬에 복사 (로컬에 ..

✔️ git checkout git checkout [커밋해시] : 헤드를 브랜치에서 분리(Detached HEAD) 후 커밋을 참조하도록 하는 것 ❕ 커밋해시는 git log (--oneline)으로 확인가능! ❗ git switch 명령어로 다시 브랜치로 돌아갈 수 있음 git switch - ↑ 내가 떠났던 브랜치로 돌아감 🙋🏻♀️ 그럼 checkout 상태에서는 뭘 할 수 있죠? 💡 커밋을 둘러보고, 파일을 확인하고, 뭔가를 복사해서 어딘가로 갖고 가는 것 등 (관찰) 🙋🏻♀️ 전 예전 커밋으로 돌아가서 다시 시작하고 싶은데요? 💡 git checkout 명령어로 (1)이전 커밋으로 돌아가서 (2)새로운 브랜치를 만들고 (3)새로 작업하기! git checkout HEAD~n : HEAD에서 ..
🙋🏻♀️ 새로운 브랜치(2)를 만들어서 작업을 했는데, 이것을 커밋하지 않고 다른 브랜치(1)로 switch하려고 하면 어떻게 될까? 1️⃣ 작업한 내용이 다른 브랜치(1)로 따라옴 2️⃣ 깃이 브랜치를 변경하지 못하도록 막음(충돌이 발생할 경우) ✔️ git stash - 변경사항을 (임시)저장해서 커밋해야 하는 작업을 잠시 멈춤! git stash git stash save : 변경사항(스테이징O and X)를 stash에 임시저장 git stash pop : stash에서 가장 최근에 스태시한 변경사항들을 삭제하고 (어디에 있든지) 변경사항을 다시 적용 git stash apply : stash에서 가장 최근에 스태시한 변경사항들을 삭제하지 않고 (어디에 있든지) 변경사항을 다시 적용 : 여러 브..

✔️ git diff git diff : 스테이지에 등록(add)되지 않은 워킹 디렉토리(스테이징X)의 변경사항을 모두 나열 git diff HEAD : 마지막 커밋과 워킹 디렉토리(스테이징O and X)의 변경사항을 모두 나열 ❕HEAD는 브랜치에 있는 가장 마지막 커밋을 참조하는 포인터 git diff --staged git diff --cached : 마지막 커밋과 워킹 디렉토리(스테이징O)의 변경사항을 모두 나열 git diff HEAD [파일명] git diff --staged [파일명] : 해당 명령어를 [파일]에만 적용 git diff branch1..branch2 git diff branch1 branch2 : 두 브랜치 간의 변경사항을 모두 나열 git diff commit1..commi..

📌 Merge의 2가지 원칙 1️⃣ 특정 커밋이 아닌 브랜치를 병합한다! 2️⃣ 항상 현재 HEAD 브랜치에 병합한다! ✔️ git merge : 브랜치 병합 git merge ✔️ 빨리 감기 병합 : 2개의 브랜치(ex. main, bugfix)가 있고 브랜치 중의 하나(bugfix)는 첫번째 브랜치(main)가 갖고 있지 않은 추가 커밋을 갖고 그래서 그것을 따라잡기 위해서 포인터를 앞으로 옮기는 것 git switch main git merge bugfix ✔️ 병합 커밋 - 충돌X, Git이 자동으로 병합 - 충돌O, 충돌을 해결해야 함 1️⃣ 충돌이 발생한 파일 열기 2️⃣ 파일 편집 3️⃣ 충돌 표시 제거 >bug-fix 4️⃣ 변경사항을 등록(add)하고 커밋
📌 브랜치 : 일부 커밋에 대한 레퍼런스(참조) - 기본 브랜치의 이름은 master (github에서는 main) ❗ HEAD? : 저장소에서 현재 위치(브랜치)를 가리키는 포인터 ✔️ git branch (with option) git branch * main (1) 현재 저장소에 존재하는 브랜치 목록 : *이 있는 브랜치가 현재 내가 위치하고 있는 브랜치 git branch (2) 브랜치 생성 (브랜치 이동X) : HEAD를 기준으로 생성 💡 브랜치 이름은 이해하기 쉽고 정보를 담고 있어야 함! git branch -d git branch -D (3) 브랜치 삭제 : -d 옵션은 delete, -D는 --delete --force : 브랜치를 삭제하기 위해서 내가 해당 브랜치에 있으면 안됨. (삭제..