Git

팀프로젝트 협업툴 Github

monster route 2024. 9. 12. 18:42

팀프로젝트 협업툴 Github

 

실수로 git add . 까지 했는데 취소하고 싶을 때

git reset

 


 

커밋 되돌리기

 

  • 최근 커밋 되돌리기
git revert <커밋 해시>

 

  • 모든 커밋 되돌리기
# 특정 커밋으로 되돌리기
git reset --hard <커밋 해시>
# 원격 저장소 강제 업데이트
git push --force

 

✋ 주의: 강제로 푸시하는 것은 다른 팀원에게 영향을 줄 수 있으니 주의가 필요하다. 반드시 이야기하고 해야함.

 


 

커밋을 잘못 리셋한 경우, 이전 상태로 복원하고 싶을 때

git reflog
git reset --hard HEAD@{0}

 

*HEAD@{0} 괄호 안의 숫자가 0 이면 가장 최근 커밋을 뜻하는거다.  

 


 

최신 commit을 취소하고 작업 내용을 수정하거나 저장하고 싶을 때

 

  •  최신 커밋과 관련된 모든 변경 사항을 삭제 (작업 내용 손실됨)
git reset --hard <커밋 해시>

 

  • 최신 커밋을 취소하고 변경 사항을 스테이징(add) 상태로 유지
git reset --soft <커밋 해시>

 

  • 최신 커밋을 취소하고 변경 사항을 언스테이지( add 안한 상태) 상태로 유지
git reset --mixed <커밋 해시>

 


 

커밋 해시가 뭔데??? 🤔

 

Git에서 '커밋 해시'각 커밋을 고유하게 식별하기 위한 고유한 문자열이다. Git이 각 커밋을 추적하고 관리하는 데 사용된다.

 

커밋 해시 확인

# 최근 커밋의 해시 확인
git log --oneline

 

 

해보면 이렇게 맨 왼쪽 노란색으로 나오는게 커밋해시다.

 

 

만약, 커밋의 변경 사항 확인하고 싶으면

git show a614c91

 

이렇게 변경사항 확인이 가능하다👍

 


 

마지막 커밋의 메시지를 수정하고 싶을 때

git commit --amend -m "수정하고 싶은 커밋 메시지"

 

 

현재 작업 내용을 잠시 임시 저장하고, 다른 브랜치에서 작업한 후 다시 복원하고 싶을 때

git stash
git stash pop  # 최근 stash 복원
git stash list  # stash 목록 보기
git stash apply stash@{2}  # 특정 stash 복원
git stash drop stash@{2}  # 특정 stash 제거

 

 

github 레포지토리에 브랜치 이름을 다르게 해서 올리고 싶을 때

git push origin 로컬 브랜치명:원격 브랜치명

 

 

✍️ 예를 들어, 로컬에서 branch_login 브랜치원격 저장소에는 branch_signin 으 push하고 싶을 때,

git push origin branch_login:branch_signin

 

↑ 이렇게 하면 된다.

 


 

이건 다 알겠지만..

여러사람이 동시에 같은 파일을 수정하면 충돌이 발생한다. git status로 현재 상태 및 충돌 파일 등을 확인 하면 된다. 

git status

 

로컬 브랜치와 원격 브랜치의 상태가 다를 때

 

1. 원격 브랜치 먼저 확인 : git fetch로 원격 저장소의 변경 사항을 가져오고

git fetch

 

2. git pull로 원격 브랜치와 로컬 브랜치 동기화

git pull

 

3. 충돌 해결해주기