목록Git (39)
컴공생의 다이어리
Git 최초(initial) 커밋 rebase로 수정 Git rebase 명령어로 제일 최초(처음) 커밋을 수정하려면 아래와 같은 명령어를 입력하여 수정할 수 있다. git rebase -i --root 위 명령어를 입력하고 rebase 작업을 진행해주면 된다. https://github.com/HomoEfficio/dev-tips/blob/master/Git%20%EC%B5%9C%EC%B4%88%20%EC%BB%A4%EB%B0%8B%20Author%20%EC%88%98%EC%A0%95.md GitHub - HomoEfficio/dev-tips: 개발하다 마주쳤던 작은 문제들과 해결 방법 정리 개발하다 마주쳤던 작은 문제들과 해결 방법 정리. Contribute to HomoEfficio/dev-tips..
[Git] 특정 커밋(commit) 삭제 : rebase 사용 깃에서 특정 커밋을 삭제하려면 rebase명령어를 사용해서 삭제할 수 있다. 다음과 같이 로그가 있을 때 아래 표시한 커밋을 제거해보겠다. 제거하려고 하는 커밋의 이전 커밋 id를 git rebase -i 뒤에 넣어서 명령어를 입력해준다. 이 게시물의 예제로는 example 주석 밑의 명령어를 입력하면 된다. git rebase -i {제거하려고 하는 커밋의 직전 커밋 id} # example git rebase -i c0787fe491870f590a rebase 명령어를 입력하면 아래와 같은 화면이 나오는데 제거하려고 하는 커밋이 제일 위에 있을 것이다. 여기서 제거하려는 커밋의 작업 타입을 pick에서 d 혹은 drop으로 변경하고 저장 ..
Git 커밋(commit)들의 특정 작성자(Author) 일괄 변경 아래 게시물에서 커밋의 작성자를 일괄적으로 변경하는 방법(모든 커밋의 작성자를 변경)에 대해 정리한 적이 있다. 오늘 게시물에서는 나와 여러 사람들이 있는 커밋들 사이에서 나의 커밋 정보(작성자, 이메일) 즉, 특정 작성자의 정보를 변경하는 방법에 대해 정리하고자 한다. 이 방법 또한 같이 협업을 진행하고 있는 상황에서 독단적으로 처리하는 것은 위험하다. 프로젝트가 진행중이거나 의논이 필요한 상황이라면 협의를 하고 진행하는 것을 추천한다. [Git] 커밋(commit)들의 작성자(Author) 일괄 변경 Git 커밋(commit)들의 작성자(Author) 일괄 변경 커밋들의 작성자를 일괄적으로 변경하는 방법이지 여러 사람과 했던 커밋들에..
IntelliJ 깃 관련 플러그인 - GitToolBox 인텔리제이에서 유용할게 쓸 수 있는 플러그인 중 뭐가 있을까 하면서 블로그 보다가 GitToolBox라는 플러그인을 찾게 되었다. GitToolBox 플러그인은 협업할 때 쓰면 좋은 플러그인 같다. 뭔가 이상한 코드를 발견했을 때 이거 누가 작성한 코드인가 찾을 때 보통 커밋 히스토리를 뒤져가며 찾아야 하는데 이 플러그인은 코드에 가져다 놓으면 이 코드 라인의 마지막 수정자, 수정일시, 커밋내역이 아래와 같이 표시된다. Settings(Ctrl+Alt+S)에 들어가서 Plugins 탭을 누른 뒤 GitToolBox를 검색하고 Install을 한 뒤, IntelliJ를 재부팅하면 그때부터 GitToolBox의 기능이 바로 적용된다. https://v..
Git PR(Pull Request) local로 가져오기 Github에 PR을 날리고 해당 브랜치와 바로 Merge하지 않고 테스트를 한 후 Merge하는 것이 더 안전할 것이다. 이때 PR을 local로 가져오려면 아래 명령어를 사용하면 된다. git pull origin pull/{PR 번호}/head:{branch 이름} # ex git pull origin pull/2/head:main 나는 PR을 받은 브랜치를 로컬로 가져오고 나서 위의 명령어를 통해 PR을 가져온 브랜치에 합치면서 테스트를 진행한 후 확인하고 있다. 아래 과정처럼 사용하고 있다. # 1. 원격 저장소의 main 브랜치를 test라는 이름의 브랜치로 로컬로 가져옴 git checkout -b test origin/main # ..
Git 특정 파일만 되돌리기 프로젝트를 진행하다가 작업 내용이 꼬이거나 하면 최근 커밋으로 초기화시킬때 보통 git reset --hard HEAD 명령어를 사용한다. 하지만 모든 작업 내용을 초기화하지 않고 특정 파일만 초기화하고 싶다면 git checkout 명령어를 사용하면 된다. git checkout 뒤에 변경하고자 하는 파일의 시점에 대한 커밋아이디를 넣고 그 파일의 경로를 넣어서 명령어를 사용하면 된다. git checkout https://hoyoung1.github.io/posts/git/2020-01-27-git-reset-HEAD-file git 특정파일만 되돌리기, 특정파일만 add 취소하기 특정파일의 작업 취소 그리고 특정파일의 add 취소에 대해 알아보자 HoYoung1.gith..
.gitignore가 적용이 안될때 .gitignore에 커밋에서 제거할 파일이나 폴더를 넣어놨음에도 불구하고 가끔 커밋이 되는 경우가 있다. 이경우 아래 명령어들을 입력해주면 된다. git rm -r --cached . 명령어를 통해 git의 캐시를 삭제한 후 커밋하면 해결되는 문제이다. git rm -r --cached . git add . git commit -m "clear git cache" git push +) 나의 경우 프로젝트가 어느정도 진행되고 나서 이 방식대로 했을 때도 해결이 가능했다. 하지만, 이 글의 첫번째 댓글을 보면 "package 폴더에서 실행하면 파일 모두 delete 되었다"라는 경우도 있어 git add . 명령어 뒤에 git status 명령어를 통해 한번 확인을 하고..
Git 여러 커밋(commit) 하나로 합치기 이 글에서는 여러 커밋을 하나로 합치는 방법에 대해 정리하고자 한다. 만일 아래와 같이 커밋이 있다고 하자. 아래처럼 자잘자잘하게 나눠서 여러번 커밋했을 때 하나의 커밋으로 통합하고 싶을 수 있을 것이다. 이때, rebase의 -i 옵션을 사용해서 커밋을 통합할 수 있다. 만일 위의 사진에서 첫번째 커밋 부터 세번째 커밋까지 통합하고 싶다면 git rebase -i HEAD~3 명령어를 입력하면 된다. git rebase -i HEAD~(통합갯수) # ex git rebase -i HEAD~3 위의 명령어를 입력하면 아래 왼쪽 사진과 같이 3개의 커밋에 대해서 pick이라고 되어 있는 부분이 있을 것이다. 맨 위의 커밋을 제외하고 나머지 pick을 s 혹은 ..
Git 원격 저장소 주소 변경 기존 원격 저장소 주소를 변경하기 위해서는 git remote set-url 명령어를 사용하면 된다. 변경하기 전 현재 로컬 git 저장소가 어느 원격 저장소와 연결되어 있는지 보고 싶다면 아래와 같이 git remote -v 명령어를 입력해 확인할 수 있다. git remote -v # origin https://github.com/user/repo.git (fetch) # origin https://github.com/user/repo.git (push) 확인 후 git remote set-url origin 를 입력하면 원격 저장소 주소가 변경된다. git remote set-url origin https://github.com/user/변경할repo.git http:..
GitLab You are not allowed to push code to protected branches on this project 에러 git으로 깃랩에 강제로 push하려고 했더니 You are not allowed to push code to protected branches on this project라는 에러가 발생했다. 이유를 찾아보니 push하려는 branch가 Protected로 설정되어 있어서였다. Master branch 즉, default branch의 경우 기본적으로 force push에 대해 Protected로 설정되는 것 같고 다른 브랜치의 경우 Permission 및 force push에 대해 권한 설정을 해주어야 한다. force push 허용 설정 1. GitLab의..