git push 실행 시 에러 해결
git push를 실행했을 때 다음과 같은 에러가 발생했다면??
! [rejected] premium -> premium (fetch first)
error: failed to push some refs to 'https://github.com/~~~'
내가 로컬 레포지토리를 수정하는 동안 다른 개발자에 의해 리모트 레포지토리에 변화가 생겼다면 바로 git push를 쓸 수 없기 때문에 위와 같은 에러가 발생한다. 이때는 경우에 따라 2가지 방법이 있다.
- 수정된 내용을 확인할 필요가 없는 경우
- 수정된 내용을 먼저 확인하고 싶은 경우
1. 수정된 내용을 확인할 필요가 없는 경우
리모트 레포지토리에서 코드를 수정한 개발자를 신뢰하여 수정된 내용을 확인할 필요가 없을 경우, git pull을 한 다음 git push를 하면 된다.
그런데 git pull을 실행했을 때 다음과 같은 에러가 발생할 수 있다.
CONFLICT (content): Merge conflict in License.txt
https://becoming-developer.tistory.com/8 해결 방법은 이 링크를 참조하면 된다.
2. 수정된 내용을 먼저 확인하고 싶은 경우
다른 개발자가 어떤 내용을 수정했는지 먼저 보고 싶은 경우에는 아래의 git fetch 커맨드를 활용할 수 있다.
- git fetch : 로컬 레포지토리에서 현재 HEAD가 가리키는 브랜치의 업스트림(upstream) 브랜치로부터 최신 커밋들을 가져옴(가져오기만 한다는 점에서, 가져와서 머지까지 하는 git pull과는 차이가 있음)
1. git bash 터미널에서 git fetch 실행
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 689 bytes | 86.00 KiB/s, done.
From https://github.com/~~~
68437c2..4cb5b5d premium -> origin/premium
2. git diff 커맨드를 통해 수정된 내용 확인
git diff [로컬 레포지터리의 브랜치] [리모트 레포지터리의 브랜치]
ex) git diff premium origin/premium
3. 리모트 레포지토리의 브랜치에 문제가 있을 때
아래 2가지 방법 중 선택하면 된다.
- 잘못된 코드를 작성한 개발자에게 코들르 고치고 다시 리모트 레포지토리에 올려달라고 하기
- 잘못된 부분을 알아서 해결하고 다시 git push 하기
2번 방법의 경우:
1. git bash 실행 후 아래 커맨드 입력
git merge [리모트 레포지터리의 브랜치]
2. visual studio code에서 파일 수정 후 저장
3. git bash에서 다음 커맨드 실행
git add .
git commit -m "커밋 메시지"
git push
코드를 누가 작성했는지 보기
- git blame [파일명] : 특정 파일의 내용 한줄한줄이 어떤 커밋에 의해 생긴 것인지 출력
- git show [궁금한 커밋 아이디] : 더 자세히 보기, 실행 후 나가려면 q 입력
직전에 Remote Repository에 올라간 커밋 취소
- git revert [되돌리고 싶은 커밋아이디] : 특정 커밋에서 이루어진 작업을 되돌리는(취소하는) 커밋을 새로 생성(git log명령어를 통해 커밋아이디 확인 가능)
- 커밋 메시지를 입력하라는 창이 뜨면 (원하면 커밋 메시지 변경하고) :wq 입력
- git push
여러 커밋 취소
- git revert [커밋 아이디]..[커밋아이디] : 첫 번째에 쓴 커밋 아이디의 다음 커밋부터 두 번째에 쓴 커밋 아이디까지의 커밋에서 이루어진 작업을 취소하는 커밋을 생성
- git push
출처: 코드잇 Git 강의
'Git' 카테고리의 다른 글
| git pull error 해결 방법 (0) | 2023.05.19 |
|---|---|
| [Git] Open Source Software (0) | 2023.04.06 |
| 브랜치 사용하기 (0) | 2022.12.30 |
| 커밋 다루기 정리 노트 (0) | 2022.12.30 |
| Github에서 다른 프로젝트 가져오기 (0) | 2022.12.30 |