[Git 협업하기] git pull, git fetch, git blame, git show, git revert

soma·2024년 3월 18일

Git

목록 보기
2/7
post-thumbnail

Git 협업하기

📂 git pull

git pull은 리모트 레포지토리 브랜치에 있는 내용을 로컬 레포지토리로 가져와서 머지하는 커맨드

❗❗ 로컬 레포지토리를 수정하는 동안 리모트 레포지토리에 변화가 생기면 git push가 되지 않음
💡 git pull로 리모트 레포지토리의 최신 커밋을 로컬 레포지토리에 가져온 후 머지함
❗❗ 이때 머지 과정에서 conflict가 일어날 경우
💡 conflict가 일어난 파일을 수정하고 git add .git commit 해야 함
💡 마지막으로 git push 하면 머지 내용이 리모트 · 로컬 레포지토리에 반영됨!

📁 git fetch

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 revert

git 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 reset

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

git revert


git revert [커밋아이디..커밋아이디]

  • 여러개의 커밋을 범위를 지정해서 취소할 수 있음
$ git revert [되돌릴 커밋아이디 4자리부터 .. 되돌릴 커밋아이디 4자리까지]

// [되돌릴 커밋아이디 4자리부터]의 커밋은 포함되지 않음

// example : abde 다음 커밋부터 ffe3 커밋까지 revert 함
$ git revert abde..ffe3
profile
배움의 기록을 차곡차곡

0개의 댓글