Git 28

[Git] 로컬 브랜치와 다른 원격 브랜치로 Push하기

다른 branch에 반영해야 하는 수정사항을 master 브랜치에서 작업해버렸다. 저장소 관리 정책 상 master 브랜치에는 직접 push 할 수가 없어 곤란한 상황에서는 어떻게 해결하면 좋을까? 작업해야 하는 branch로 이동해서 다 다시 수정해야 할까? 기본적으로 로컬 저장소와 원격 저장소의 브랜치 이름이 같으면 아래와 같은 명령어로 push할 수 있다. git push # 예시 git push origin master 하지만 push 명령은 push할 브랜치와 업데이트할 브랜치를 지정할 수도 있다. git push : # 예시 git push origin master:passwd src는 push할 브랜치의 이름이다. SHA-1 식도 지정할 수 있는 것을 보면, 특정 커밋만을 push할 수도 있..

Git | GitLab 2022.04.05

[Git] git init 취소

git init cd /YOUR/PROJECT/PATH git init 버전 관리를 하지 않는 프로젝트를 Git으로 관리하기 위해 기존 디렉터리를 Git 저장소로 만든다. 명령을 실행하면 디렉터리에 .git이라는 하위 디렉터리를 생성하며, 이 디렉터리는 데이터를 저장하고 관리하는 데 사용된다. 이 디렉터리를 복사하면 저장소를 백업하는 것이다. git init 취소 git init을 취소하고자 할 때에는, git init 명령을 통해 생성된 .git 디렉터리 자체를 삭제하면 된다. cd /YOUR/PROJECT/PATH rm -r .git 참고 문서 https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-Git-%EC%A0%80%EC%9E%A5%EC..

Git | GitLab 2022.01.17

git reset - commit 취소

2021.08.30 - git reset - add 취소 이전 글에 git reset에 대한 내용을 조금 정리해두었기 때문에 참고하면 좋다. 아마도. commit 이력 확인 git log commit 취소 git reset --soft HEAD # 최신 커밋 취소 git reset --soft HEAD^ git reset --soft HEAD~ # ^ : 커밋의 부모 # ^^ : 커밋 부모의 부모 # 마지막 n개 커밋 취소 git reset --soft HEAD~n # ~ : 여러 개의 ^와 같음 (~3 == ^^^). 수를 지정하지 않으면 ^와 같다. commit 취소란? HEAD, Index, Working Directory 개념을 생각해보면, -> Index와 Working Directory는 변경..

Git | GitLab 2021.09.01

git reset - add 취소

실수로 github 레포지터리에 푸시하지 않아도 되는 파일을 add 했다. 현재 stage 상태인 파일을 unstage 상태로 변경하려고 한다. 두괄식으로 결론만 먼저 적으면, add 취소할 파일을 지정하여 git reset 명령을 실행하면 된다. 아래 명령어는 모두 동일한 명령어다. git reset git reset --mixed git reset --mixed HEAD # 위와 동일한 명령어 # 예시 git reset README.md 기본 개념 HEAD 현재 브랜치를 가리키는 포인터 브랜치는 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다. HEAD가 가리키는 커밋은 다음 커밋의 부모가 된다. Index Staging Area. 다음에 커밋할 것들. git commit 명령 실행 시 git이 ..

Git | GitLab 2021.08.30

git 사용자 설정

git config Git의 사용 환경 설정의 내용을 확인하고 변경하는 도구 git 설치 후에는 사용자 설정 등의 환경을 설정해주어야 원격 저장소로 푸시를 하는 등의 작업을 진행할 수 있다. 설정 파일 /etc/gitconfig 시스템의 모든 사용자와 모든 저장소에 적용되는 설정 git config --system​ 설정 변경 시, root 권한이 필요하다. ~/.gitconfig, ~/.config/git/config 현재 사용자에게만 적용되는 설정 모든 저장소 설정에 적용된다. git config --global​ ./.git/config git 디렉터리에 위치하여 특정 저장소에만 적용된다. git config --local​ ./.git/config이 제일 우선적으로 적용된다. 사용자 정보 설정 g..

Git | GitLab 2021.08.14

다른 두 레포지터리 병합

살다 보면 같은 프로젝트에 대해 뭔가 문제가 생겨서, 아니면 단순 이동 목적으로 새로 레포지터리를 파는 일이 발생하기 마련이다. 하지만 추후 히스토리를 관리할 때에 보면, 같은 프로젝트지만 아예 별개의 레포지터리로 저장되어 있어 병합해야 하는 경우가 있을 수 있다. 그럴 때 아래의 절차 따르면 별개의 저장소를 커밋 히스토리까지 병합할 수 있다. 방법 1. 로컬 상에서 작업을 진행할 프로젝트로 이동한다. 2. 병합할 원격 저장소 추가 git remote add # 예시 git remote add tomerge https://github.com/remote/url.git 3. 원격 저장소에 저장된 커밋 기록 fetch git fetch # 예시 git fetch tomerge 병합할 원격 저장소의 커밋 로그..

Git | GitLab 2021.07.24

Git 레포지터리 미러링

Git을 통해 레포지터리 미러링 방법에 대해 적어둔다. 레포지터리 내 100M 이상 파일도 함께 옮기고 싶다면 git-lfs, BFG Repo-Cleaner도 함께 사용해야 한다. 방법 1. git-lfs 레포지터리 설치 curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash 2. git-lfs 설치 sudo yum install git-lfs git lfs install 3. BFG Repo-Cleaner 다운로드 wget https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar # 사용 방법 : jar 실행 java -jar ..

Git | GitLab 2021.06.01

특정 Commit History 삭제

아무리 조심한다고 한들 살다 보면 민감정보가 포함된 내용을 commit/push 하는 경우가 종종 있기 마련이다. 이미 원격 저장소에 푸시를 완료한 상황이라면 파일 내용을 수정해봐야 commit history에는 여전히 정보가 남아있기 때문에, 아예 해당 커밋을 푸시한 이력이 없던 버전으로 원격 저장소의 상태를 돌려놓아야 한다. 이 글은 커밋 히스토리에서 잘못 커밋/푸시한 파일을 삭제하는 방법을 다룬다. 방법 1. 클론받은 레포지터리로 이동한다. 2. 브랜치 재작성 필터링을 이용해 적용된 파일만 가지고 히스토리를 재구축한다. git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch ''" \ --prune-empty --ta..

Git | GitLab 2021.05.26
1 2 3