목록🎃 기타/Git (8)
코딩마을방범대
컴퓨터 포맷 후 Intellij 에서 처음 push를 시도했는데 아래와 같이 동작이 정상적으로 수행되지 않았다.'Permission denied (publickey)' 이라는 오류는 SSH 키 인증이 실패했음을 의미한다. 저런 팝업창이 아니더라도 Intellij 내의 Git-Console의 로그를 보아도 확인할 수 있다.git@192.~: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 위 문제를 해결하기 위해선 ssh 키를 발급한 후, 원격 레포지토리에 등록해주면 된다.아래..
Git stash변경사항을 일시적으로 저장하는 기능아직 커밋하기엔 이른 경우나 다른 브랜치로 체크아웃할 때 변경사항을 유지하고 싶을 때 사용 Stash 관련 명령어 1. 변경 사항 스태시하기git stashgit statsh save#예시git stash save "작업 중인 기능 개발 중" 2. 스태시 목록 확인하기git stash list 3. 스태시 복원하기 스택에 쌓인 가장 최근의 변경 사항을 불러와 작업 디렉토리에 적용한다.이 때, 스택에서 해당 변경 사항은 제거된다.git stash popgit stash pop {index 번호} 4. 특정 스태시 복원하기 작업 디렉토리에 적용한 후에도 스태시에 저장되어 있는 상태를 유지한다.이에 대해 추가 작업을 수행하려면 다시 git st..
가끔 작업할 때 'Reset Current Branch To Here..' 이용하다가 커밋이 꼬여버리는 경우가 있다. 이럴 때 Fetch origin, Full origin 버튼을 클릭해도 'resolve conflicts before merge' 이런 창이 뜨면서 정상적으로 되돌아오질 않는다.. 이럴 때 원상복구 시키는 유용한 명령어가 있다. 아래 명령어들을 참고하자! HEAD의 위치 변동 이력 확인하기 git reflog Git의 HEAD란 현재 어떤 커밋에 위치해 있는지를 나타내는 포인터 로컬 변동 내역 삭제하기 git reset --hard 커밋 ID를 이용하여 브랜치 초기화 git reset --hard [이전 커밋 ID] 원격 저장소의 최신 버전 상태를 가져온 후 브랜치의 최신 커밋으로 리셋 ..
예전에 커밋했던 소스를 수정해야할 일이 생겼다. 하지만 그 커밋 이후 여러 커밋을 했던 상태여서 푸쉬 기록을 날리기엔 어려운 상황이였다. 아래 방법이 정답은 아니겠지만 문제 없이 내가 원하는대로 수정을 완료했으니 참고만! 이전 커밋 수정하기 1. git 로그 확인 후 커밋 ID 복사 git log intellij 를 사용 중이라면, 굳이 터미널에 명령어를 입력하지 않고 git 탭에서 수정하려는 커밋보다 전 버전의 커밋에서 오른쪽 마우스 클릭 후 'Copy Revision Number' 을 클릭해주면 커밋 ID가 자동으로 복사된다. 2. rebase를 통해 작업 환경 세팅 git rebase -i [커밋ID] 위에서 복사했던 커밋ID를 이용해 위 명령어 입력 시 아래와 같이 커밋 목록이 주루룩 나온다. 수..
Git에서 브랜치를 연동할 때 rebase, 브랜치를 합칠 때 merge를 많이 사용한다. rebase 공통 base를 가진 브랜치에서, 한 브랜치의 base를 다른 브랜치의 최신 커밋으로 base를 옮기는 작업 merge git 브랜치를 다른 브랜치로 합치는 과정 merge를 사용해 브랜치를 연동 시킬 경우의 문제점은? A라는 브랜치에서 main으로 작업 중, A 브랜치를 base로 B라는 브랜치를 새로 만들 경우 log를 볼 때 아래처럼 연결된 선 하나가 새로 생긴다. 이후 B 브랜치에 작업하다가 A에 merge할 경우 아래처럼 연결된 선이 기존 A 브랜치에 합쳐진다. 위 작업으로 인해 여러 브랜치가 겹치게될 경우 아래처럼 복잡한 히스토리가 생길 수 있다! 위처럼 지저분한 히스토리를 만들지 않기 위해..
Git을 사용하다보면 여러 브랜치 별로 관리하는 경우가 생긴다. 이럴 경우 공통 수정 사항이 생기면 브랜치 별로 끼워맞추는게 여간 불편한게 아니다. 여태 찾아볼 생각 없이 수동으로 하나하나 체크하면서 수정했는데, 역시 찾아보니 Git의 기본 기능으로 있었다. Cherry-Pick 이라는 기능을 통해 특정 커밋만 가져올 수 있다. 특정 커밋 가져오기 1. 타겟 브랜치로 체크아웃 GithubDesktop 프로그램을 통해 브랜치를 변경 Intellij의 git 탭에서 해당 브랜치의 커밋 클릭 후 Checkout 클릭 아래 명령어 이용 git checkout 브랜치명 2. 커밋 히스토리 확인 Intellij에서 git 탭의 해당 브랜치 클릭 아래 명령어 사용 git log 브랜치명 3. 커밋 선택 후 Cherr..
git에 push한 데이터를 되돌려야 되는 경우 Intellij에서도 간단하게 진행이 가능하다. - 20230725 버전: 에러 발생- 20230625 버전: 정상 작동 위와 같은 상황이라면 20230625 때의 Commit ID를 알아내면 된다. 먼저 push를 되돌리는 명령어에는 두가지가 존재한다.명령어설명Reset특정 Commit을 삭제 ( 특정 커밋 이후는 모두 삭제 )커밋 히스토리가 깔끔해진다.RevertCommit은 그대로 두고, Commit을 취소하겠다는 추가 Commit을 실행 ( 덮어쓰기 )협업 시 충돌 확률을 낮춰준다. 1. Reset 진행 Intellij 에서 수행 시 Intellij의 git 탭에서 원하는 브랜치를 선택한 후 되돌리고 싶은 Commit을 클릭한 후..
🎃 설정 확인 방법 설정된 name, eamil 확인법 git config user.name git config user.email 진행 히스토리 확인 git log git 원격 저장소 확인 법 (보통은 origin) git remote 로컬저장소에 설정한 레퍼지토리 주소 확인 git remote -v 브랜치 확인 git branch 현재 저장소의 상태 확인 git status commit 상태 확인 git log repoisoty 위치 확인 현재 작업 중인 디렉토리가 Git 리포지토리 밖에 있다면, 이 명령어는 오류 메시지를 출력하게 된다. git rev-parse --show-toplevel 🎃 환경설정 name, email 설정법 git config --global user.name "Danbi K..