Git | GitLab 44

[GitLab] 사용자 계정에 SSH 키 등록

Gitlab은 SSH 키를 등록하지 않은 사용자에게 화면 상단에 경고 메시지를 주어 SSH 키를 등록하도록 유도하고 있다. SSH 키를 사용하지 않으면 push/pull을 할 수 없다고 되어있지만, 그렇진 않다. Gitlab에 프로젝트를 push/pull할 때 로그인 인증을 하게 되는데, SSH 키를 등록하면 매번 로그인 인증 과정을 거치지 않고도 push/pull을 수행할 수 있다. 도리어 SSH를 등록하지 않으면 public 저장소 생성에 제약이 있는 것으로 보인다. 경고 메세지도 거슬리고 public 저장소도 생성할 겸, SSH 키를 등록해보자. 방법 SSH key 생성 - Linux & Git Bash Git Bash를 이용하면 Window에서도 Linux와 동일한 방식으로 SSH 키를 생성할 수..

Git | GitLab 2022.04.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

[GitLab] 그룹으로 개인 프로젝트 이동

여러 사람이 소스 관리를 하면 개인 저장소에 프로젝트를 생성해서 관리하는 것보다 그룹 저장소에 프로젝트를 생성해 관리하는 것이 더 편할 수 있다. 하지만 이미 개인 저장소에 프로젝트를 생성해서 소스 관리를 진행하고 있었다면, 프로젝트를 그룹 저장소로 이동시켜야 할 필요가 있다. 이런 경우 가장 단순한 해결 방법은 그룹에 신규 프로젝트를 생성한 뒤 기존 개인 저장소의 프로젝트를 clone/push 하는 방법인데 아마 commit history가 유지되지 않는 걸로 알고 있다. (확실하진 않다.) 그리고 다른 해결 방법은 GitLab에서 제공하는 Project Transfer 기능을 이용하는 것이다. 이 글에서는 웹 상에서 개인 저장소에 생성해둔 프로젝트를 Project Transfer 기능을 이용해 Gro..

Git | GitLab 2021.06.28

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

GitLab 삭제

디스크 용량을 확보하기 위해 테스트 목적으로 설치한 GitLab을 삭제하려고 한다. 패키지만 삭제한다고 삭제되지 않기 때문에 아래 과정을 따라야 한다. 방법 1. GitLab 서비스 제거 gitlab-ctl uninstall root 권한을 요구한다. 2. 데이터 삭제 gitlab-ctl cleanse 잠깐 기다리는 시간이 필요하다. 3. GitLab 계정 삭제 gitlab-ctl remove-accounts 4. 패키지 삭제 # ubuntu dpkg -P gitlab-ce # centos yum remove gitlab-ce # 다중 명령어로 실행해도 됨 dpkg -P gitlab-ce || sudo yum -y remove gitlab-ce 패키지 버전은 설치한 버전에 맞게 gitlab-ee 또는 g..

Git | GitLab 2021.05.28
1 2 3 4 5