✅
git pull은 리모트 레포지토리 브랜치에 있는 내용을 로컬 레포지토리로 가져와서 머지하는 커맨드
❗❗ 로컬 레포지토리를 수정하는 동안 리모트 레포지토리에 변화가 생기면 git push가 되지 않음
💡 git pull로 리모트 레포지토리의 최신 커밋을 로컬 레포지토리에 가져온 후 머지함
❗❗ 이때 머지 과정에서 conflict가 일어날 경우
💡 conflict가 일어난 파일을 수정하고 git add . 후 git commit 해야 함
💡 마지막으로 git push 하면 머지 내용이 리모트 · 로컬 레포지토리에 반영됨!
✅
git fetch는 리모트 레포지토리 브랜치에 있는 내용을 로컬 레포지토리로 가져오는 커맨드
💡 리모트 레포지토리 브랜치 내용에 문제가 있을 경우 해결 방법 💡
// 1. 리모트 레포지토리의 브랜치 내용 가져오기
$ git fetch
// 2. 두 브랜치(or 커밋) 간의 차이 보기
$ git diff [로컬 레포지토리 브랜치 이름] [origin/리모트 레포지토리 브랜치 이름]
// 3. 머지하기
$ git merge [origin/리모트 레포지토리 브랜치 이름]
// 4. 잘못된 내용이 적힌 파일 수정
// 5. 파일 업데이트 후 커밋
$ git add .
$ git commit -m "Remove ~~~ in file name"
$ git push
특정 파일의 내용 한줄 한줄이 어떤 커밋에 의해 생긴 것인지 출력하는 커맨드
git blame$ git blame [파일 이름]
git show$ git show [커밋 아이디 4자리]
git revertgit revert [커밋 아이디]
- 특정 커밋에서 이루어진 작업을 되돌리는(취소하는) 커밋을 새로 생성
- 리모트 레포지토리에 올라간 커밋 취소할 수 있음
$ git revert [되돌리고 싶은 커밋 아이디 4자리]
$ git commit
커밋아이디 (HEAD -> mian) "Revert 커밋 메시지"
$ git push
커밋아이디 (HEAD -> mian, origin/main) "Revert 커밋 메시지"
❓ git reset을 사용하지 않는 이유
❗ git reset은 로컬 레포지토리에 작업 중에만 사용
❗ git reset을 하면 리모트 레포지토리보다 로컬 레포지토리의 커밋이 한 단계 이전에 있기 때문에 git pull을 먼저하라고 함

💡💡 git revert을 사용하면 새로운 커밋이 생성되기 때문에 git push가 바로 됨

git revert [커밋아이디..커밋아이디]
- 여러개의 커밋을 범위를 지정해서 취소할 수 있음
$ git revert [되돌릴 커밋아이디 4자리부터 .. 되돌릴 커밋아이디 4자리까지]
// [되돌릴 커밋아이디 4자리부터]의 커밋은 포함되지 않음
// example : abde 다음 커밋부터 ffe3 커밋까지 revert 함
$ git revert abde..ffe3