본문 바로가기

git

(29)
로컬-원격저장소랑 연결 잘 되게 브랜치 만들기 main에서 hotfix 브랜치를 땄는데 intelliJ UI상에서 내가 만든 브랜치의 origin 을 바라보는 것이 아닌 origin/main으로 설정되어 있고 푸쉬하려고 하려면 main으로 다이렉트 푸쉬가 안된다는 에러메시지가 뜰 뿐이었다. 앞으로는 로컬-원격저장소 연결이 잘 되도록 브랜치를 아래와 같은 식으로 잘 만들어야겠다. 1) main 브랜치로 이동 2) main 브랜치 최신 Pull 받기 3) 터미널 (main) git checkout -b hotfix/브랜치이름 4) git push -u origin hotfix/브랜치 이름 -u 옵션은 git에서 --set-upstream의 축약형으로 로컬-원격 브랜치를 연결하는 역할을 한다.
IntelliJ에서 git 커밋 내역 최신화가 안될 때 IntelliJ를 새로 깔았는데 다시 켜보니 git 커밋 내역 최신화가 되지 않았다. 다음과 같은 방법으로 해결하였다. 1) 터미널에서 git remote -v 로 깃허브 저장소와 연결이 잘 되어있는지 보기 -> push, fetch에 대한 2개의 저장소 주소가 출력된다. 아무것도 출력되지 않으면 깃 저장소 연결이 잘 안된 것이다. 2) IntelliJ 상단바 'Git' > Fetch 로 최신 커밋 내역들 가져오기
zsh: invalid mode specification B 브랜치를 추적하려는 A 브랜치를 만들기 위해 IntelliJ 터미널에 아래와 같이 작성하였다.  (AS-IS) git checkout -b feature/a-chatting-http-api(for msa) --track origin/feature/b-app  그런데 zsh: invalid mode specification 라는 에러가 발생한 것이다. 왜일까? 나는 zshrc 파일에 문제가 생긴건가?라고 의심을 하였지만, 그것이 아니었다.  위의 (for msa)라고 되어있는 부분에서 문제가 되는 것이었다. 브랜치명을 만들때 ()와 같은 괄호 사용이 되지 않는다. (TO-BE) git checkout -b feature/a-chatting-http-api --track origin/feature/b-a..
error: 체크아웃 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다: ~를 전환하기 전에 이 파일을 옮기거나 제거하십시오. 해당 브랜치 위치에서 checkout을 하려고 했는데 아래와 같은 에러 메시지가 출력되었다. error: 체크아웃 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다: rust/Cargo.lock브랜치를 전환하기 전에 이 파일을 옮기거나 제거하십시오. 내가 현재 작업하고 있는 브랜치에서는 rust 브랜치는 상관이 없어서 Cargo.lock 파일을 삭제했다. 그러고 checkout이 잘 되었다.
현재 브랜치가 ~ 기반이지만, 업스트림이 없어졌습니다. 현재 사용하고 있는 브랜치의 원격을 pull 해오려고 했는데, 갑자기 현재 브랜치가 ~ 기반이지만, 업스트림이 없어졌습니다. 라는 에러가 발생하였다. 기존에 main 브랜치로 추적해서 만들었는데.. 왜그러지 싶었다. 알고보니 해당 브랜치와 연결된 remote branch가 지정되있지 않아서 발생하는 문제라고 한다. 그래서 일단 다음과 같이 해결하였다. git branch --se-upstream-to origin/main ㄴmain 브랜치를 upstream 하려고 했다. upstream은 다른 원격 저장소의 변경사항을 가져오는 기능이다.
브랜치 삭제 안되는 문제 해결 A 브랜치를 삭제하고자 B 브랜치 위치로 checkout 해서 git branch -D A브랜치 를 하려고 했으나, error: ~ 위치에 체크아웃한 'A' 브랜치를 삭제할 수 없습니다 라는 에러가 떴다. 알고보니 내가 A브랜치를 push 하지 않았어서 브랜치 삭제가 안되는 것이었다. 그래서 A 브랜치를 다시 원격 환경에 push하고 B브랜치 위치에서 A 브랜치를 삭제할 수 있었다.
You have not concluded your merge (MERGE_HEAD exists) https://jmlim.github.io/git/2019/02/18/git-pull-fail-problem/ git merge 후 pull 실패 시 해결 방안 - You have not concluded your merge (MERGE_HEAD exists) · 기억하기 위한 개 커밋을 제대로 하지 않았을 경우 아래 메세지가 뜰 수 있음. Pulling is not possible because you have unmerged files jmlim.github.io You have not concluded your merge (MERGE_HEAD exists)라는 에러가 발생했을 때 1) git merge --abort 병합 취소 2) git pull origin 내가 현재 위치해있는 Feature 브..
브랜치 이름 변경하기 기존에 A라는 브랜치 이름을 사용하고 있었는데, B 라는 이름으로 브랜치명을 변경을 해야 했다. 브랜치 이름을 바꿀 수 있나?했던 와중에, 구글에 찾아보니 브랜치 이름을 바꿀 수 있다고 한다. 1) 로컬에서 브랜치명 바꾸기 git branch -m oldname newname -> git branch -m A B 2) 원격저장소(리모트)의 브랜치명까지 변경하기 oldname > newname으로 브랜치 이름을 바꿨기 때문에, 기존에 oldname으로 저장된 원격저장소의 브랜치명이 삭제되어야 한다. git push origin :oldname -> git push origin :A 그러면 터미널에서 oldname 브랜치에 대해서 delete 되었다고 뜬다. newname(B)라는 브랜치 이름으로 바꿨으므로..
develop 추적하는 feature 브랜치 만드는 명령어 origin/develop을 바라보는 feature 브랜치를 생성하는 명령어이다. git checkout -b local-branch-name —track origin/develop local-branch-name에 내가 만든 feature 브랜치 이름을 넣어준다. 그러면 branch 'feature/support-for-merge' set up to track 'origin/develop'. 새로 만든 'feature/support-for-merge' 브랜치로 전환합니다 라는 문구가 뜬다. * git log를 통해 해당 브랜치가 origin/develop을 잘 바라보고 있는지 확인 필요 (HEAD -> feature/support-for-merge, origin/develop)
git 병합 중단 방법(커밋 날리지 않았을 때) develop > stage로 merge를 하려고 하니 그전에 PR을 날려야 할 것 같았다. 그래서 이걸 중단하고자 했는데 방법을 찾아보니 다음과 같이 진행해주면 된다. * Commit을 날리지 않은 상황이어야 한다. develop > stage로 병합하려던 중에 병합 충돌이 났던 코드들을 merge 하는 도중에 이 과정을 중단하고 싶어 git merge --abort를 해주었다. 그러면 지금까지 변경했던 코드들이 다시 제자리로 되돌아가고, stage에도 Resolve하거나 커밋을 날려야 하는 이력들은 사라지게 된다. 이로써 merge 중에 중단이 가능하다.