[Git] 폴더, 파일 이름 변경git의 파일 이동 명령어인 mv를 사용하면 rename과 동일한 효과를 얻을 수 있다.이후 commit을 해주면 원격 저장소에 적용이 된다.git mv old_name new_namerename history를 확인하기 위해 log --patch 명령어를 실행할 수 있다. git log -p -1diff --git a/config.production.json b/config.production.json.examplesimilarity index 100%rename from old_name.txtrename to new_name.txt
[Git] 원격 저장소와 로컬 저장소의 소스 코드 일치 시키기 로컬 저장소에서 작업하던 내용이 더 이상 필요 없거나, 원격 저장소의 최신 상태로 덮어쓰고자 할 때,로컬 브랜치를 초기화하여 충돌 없이 최신상태로 유지하는 방법은 다음과 같다.git fetch --all --prunegit reset --hard origin/main 각 명령어의 역할에 대해 알아보자.git fetch --all --prunefetch는 원격 저장소의 변경사항을 가져온다. --all : 현재 로컬에 등록된 모든 원격 저장소에 대해 git fecth를 실행한다.--prune : 원격 저장소에서 삭제된 브랜치를 로컬에서도 삭제한다. git reset --hard origin/main로컬 브랜치를 특정 원격 브랜치와 일치시키기..
[Git] Git Squash로 커밋 정리하기여러번의 커밋으로 복잡해진 히스토리를 관리하다 보면, 코드 리뷰 과정이나 협업 시 불필요한 커밋들이 쌓여 코드의 흐름을 이해하기 어려워질 수 있다. 이 때 유용한 git의 기능 중 하나가 바로 git squash다. Git Squash란?여러 개의 커밋을 하나로 합치는 작업을 말한다.이를 통해 코드베이스의 커밋 히스토리를 깔끔하고 간결하게 유지할 수 있다. 예를 들어, 하나의 기능을 개발하면서 여러 번 커밋을 남기게 되는데, 이를 코드베이스에 병합하기 전에 커밋으로 합쳐서 기록하는 것이 일반적이다. 💡 왜 Squash를 사용할 까?작업 중간중간 불필요한 커밋들을 합쳐서 메인 브랜치에 병합할 때, 커밋 히스토리를 깔끔하게 유지할 수 있다.리뷰어가 기능 하나당 ..
[Git] 특정 파일만 pull 받아오기원격 저장소에서 push된 변경 사항이 여러가지가 있을 때, 로컬 저장소에 특정 변경사항만 pull을 받아오고 싶은 경우다음과 같이 checkout 명령어를 사용하면 된다.# 원격저장소의 변경사항 업데이트git fetch# 특정 파일만 Pullgit checkout origin/master --
[Git] fatal: push options must not have new line characters Merge Request 를 command Line으로 생성하는 법을 포스팅 했었다. [Git] Merge Request command Line으로 생성하기[Git] Merge Request command Line으로 생성하기 자동으로 MR 생성을 해야하는 과제가 있었다. 찾아보니 gitlab 11.10 부터 git 2.10 이상을 사용하는 경우, 다음과 같이 CLI로 Merge Request를 생성할 수 있었다. git pheywantodo.tistory.comgit push \-o merge_request.create \-o merge_request.remove_sour..
[Git] remote: You are not allowed to push code to this project. 어제까지만 해도 잘 되던 Push가 다음과 같은 에러 메시지와 함께 안되기 시작했다 😥 remote: You are not allowed to push code to this project. fatal: unable to access 'http//git_repositoy.git/ ': The requested URL returned error: 403 원인은 여러가지가 있는 것으로 보였다. 1. Protect Branch로 설정되어있는데, force Push가 허용이 되어있지 않은 경우 2. 자격 증명이 잘못 설정되어 있는 경우 1번의 경우엔 브랜치 설정에서 proctect branch로 설..
[Git] 로컬 브랜치를 다른 이름의 원격 브랜치로 push 일반적으로 로컬 브랜치를 같은 이름의 원격 브랜치에 push하지만, 운영중인 브랜치일땐 바로 push를 하기 쉽지가 않다. 그럴 경우 로컬 브랜치와 원격브랜치의 이름을 콜론으로 구분하여 지정하면 다른 이름의 원격 브랜치로 push가 된다. 예를 들어 로컬 브랜치의 이름이 master고, 원격 브랜치의 이름이 new-branch라고 하면 git push origin master:new-branch 다음과 같이 push 하면 된다. 만약 원격 브랜치에 new-branch라는 브랜치가 없는 경우, 자동으로 생성된다.
[Git] Script에 권한 준 채로 push하기 로컬에서 쉘 스크립트를 git으로 배포할 때, 권한 업데이트를 한 채로 push를 할 수가 있다. 권한 확인 현재 디렉토리에 위치한 파일들의 퍼미션을 확인할 수 있다. 권한이 가장 왼쪽에 숫자로 표시가 된다. git ls-tree HEAD 권한 추가 git update-index --chmod=+x test.sh 권한 제거 git update-index --chmod=x test.sh 참고 https://brownbears.tistory.com/612
[Git] 작업 디렉토리가 아닌 곳에서 git 명령어 사용하기 스크립트 작업을 할 때, git 디렉토리가 아닌 곳에서 git 명령어를 사용해야 하는 경우가 있었다. 작업 디렉토리가 아닌 곳에서 git 명령어를 사용하는 법은 간단하다 -C 옵션을 사용하면 된다. git -C pull ex) git -C /home/ubuntu/git_test pull
[Git] git push --set-upstream origin main git에서 push를 할 때, 다음과 같은 에러가 발생했다. 이유를 찾아보니 원격 저장소에 기본 branch 설정을 해주지 않아서라고 한다. To push the current branch and set the remote as upstream, use git push --set-upstream origin main To have this happen automatically for branches without a tracking upstream, see 'push.autoSetupRemote' in 'git help config'. 해결방법은 다음과 같이 기본 브랜치를 설정해주거나, git push --set-upstream ..
[Git] Gitlab API로 Merge Request 업데이트 하기 앞선 포스팅에서 CLI로 Merge Request의 리스트를 가져오는 방법을 알아봤다. 이번엔 Python의 requests 라이브러리를 사용해서 이미 생성되어있는 Merge Request를 업데이트 해보고자 한다. 업데이트 할 수 있는 항목은 아래 docs에서 확인 할 수 있다. https://docs.gitlab.com/ee/api/merge_requests.html#update-mr Merge requests API | GitLab GitLab product documentation. docs.gitlab.com import requests import json url = http:///api/v4/projects//merge_..
[Gitlab] Gitlab API로 Merge Request 가져오기 CLI로 Merge Request의 리스트를 가져와야 했다. git cli로 모든 병합 요청을 가져올 때 사용하는 명령어는 다음과 같다. git ls-remote origin 'refs/merge-requests/*/head' git ls-remote origin 'refs/merge-requests/*/merge' 나는 Open 상태의 Merge Request만 가져오고 싶었는데, CLI로는 방법을 찾지 못했다. 알아보니 Gitlab API를 사용하면 상태가 open인 MR을 가지고 올 수 있었다. https://docs.gitlab.com/ee/api/merge_requests.html#list-project-merge-reque..