[Git] 로컬 환경의 프로젝트를 GitLab 서버에서 관리하는 방법.

2024. 9. 10. 11:46Tool/git

728x90
728x90

Local Server 정보.

$ hostnamectl
...
  Operating System: Red Hat Enterprise Linux 8.10 (Ootpa)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:8::baseos
            Kernel: Linux 4.18.0-425.13.1.el8_7.x86_64
...

GitLab Server 에서 프로젝트 생성.


Local Server 에서 SSH 키 생성.

$ ssh-keygen -t rsa -b 4096 -C "gunwoo_park@tmaxsoft.com"

 

생성한 키 출력.

$ cat ~/.ssh/id_rsa.pub

 

GitLab Server 에서 출력한 SSH 키 등록.


Local Server 작업 내역.

 

Git 설치.

$ sudo yum install git

 

설치 확인.

$ git --version
git version 2.43.5

 

Git 사용자 정보 설정.

$ git config --global user.name "gunwoo"
$ git config --global user.email "gunwoo_park@tmaxsoft.com"

 

GitLab 원격 저장소 추가.

$ git remote add origin http://192.168.51.106/gunwoo_park/alt_installer.git

 

로컬 서버의 프로젝트 경로로 이동.

$ cd $GITLAB_PROJECT_PATH

 

현재 디렉토리를 Git 저장소로 초기화.

$ git init

 

현재 디렉토리의 모든 파일과 변경 사항을 스테이징 영역에 추가.

  • 스테이징 영역은 커밋을 하기 전에 어떤 파일이 저장될지 선택하는 공간.
$ git add .

 

스테이징 영역에 있는 변경 사항을 커밋(저장).

  • 커밋은 특정 시점의 파일 상태를 로컬 저장소에 저장하는 것.
$ git commit -m "Initial commit"

 

로컬 저장소에서 커밋한 변경 사항을 원격 저장소(origin)의 브랜치(master)에 푸시(업로드).

$ git push -u origin master

 

GitLab Server 에서 푸시한 프로젝트 확인.


로컬 저장소에서 원격 저장소로 푸시할 때, 아래와 같은 에러가 발생.

$ git push -u origin master
(gnome-ssh-askpass:3355269): Gtk-WARNING **: 17:36:50.273: cannot open display: 
error: unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass'

 

해결 방법.

  • Git이 SSH 인증을 위해 gnome-ssh-askpass 프로그램을 실행하는데, CLI 환경에서는 해당 프로그램(GUI)이 실행되지 않기 때문에 발생함.
  • SSH 에이전트에 SSH 키를 추가하여 해결할 수 있음.
$ eval "$(ssh-agent -s)"
Agent pid 3355296
$ ssh-add ~/.ssh/id_rsa
Identity added: /home/gunwoo/.ssh/id_rsa (gunwoo_park@tmaxsoft.com)
$ git push -u origin master
...
 * [new branch]      master -> master
branch 'master' set up to track 'origin/master'.
...
728x90
728x90