Remark : 업로드에 관한 상식적인 Git 이론을 알아보자
- 2005 년 리눅스를 기반으로 만든 소스
- 명령어 언어는 리눅스 bash
- MS 사에서도 Git 방식을 채택함.
회사에서 쓰는 소스 저장 클라우드가 있으면 따로 서버 세팅은 생략 해도 된다
1. 로컬 컴 버전에 맞게 Git 프로그램 설치
https://git-scm.com/download/win
default 로 Next 로 설치 하면 된다.
2. 서버에 Git 설치
1 2 3 |
sudo apt install git -y |
3. 서버에 폴더 생성 및 사용자 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ sudo mkdir /data/git $ sudo useradd -c gituser_test -d /data/git/ -p mypasswd gituser #패스워드 설정 $ sudo passwd gituser New password: Retype new password: passwd: password updated successfully #확인 $cat /ect/passwd root:x:0:0:root:/root:/bin/bash ::: 중간 생략 ::: gituser:x:1002:1002:gituser_test:/data/git/:/bin/bash |
*테스트를 위해 /bin/bash 로 하였으나 ssh 로 전체파일 접근 가능하여 보안상 위험(SSH 공개키로 접근, only git-shell ) 추천
참조 :https://git-scm.com/docs/git-shell
4. 서버 폴더 사용권한 설정
1 2 3 4 |
$ sudo chown -R gituser:gituser /data/git $ sudo chmod -R 755 /data/git |
5. 서버 master 폴더 html 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$sudo su gituser git$ git init --bare html hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch <name> hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m <name> Initialized empty Git repository in /data/git/html/ gituser@localhost:/data/git$ ls html |
6. 로컬 컴에서 여긴선 Git Bash 선택 / 명령어를 알아보려고 bash 로 실행 합니다.
7. 로컬 컴에서 bash 창에서 올리 소스가 있은 경로로 이동
7.1 초기화 init
7.2 모든파일추가 add .
7.3 커미트(적용) 에 설명추가 commit
7.4 제작자 정보 없다는 에러 발생 (나온대로 추가해서 다시 함)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
virtual01@PC MINGW64 ~ $ cd E:\html $ git init Initialized empty Git repository in E:/html/.git/ $ git add . $ git commit -m "first upload" Author identity unknown *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'virtual01@hPC.(none)') |
8. 로컬 컴 소스 경로에 제작자 정보 넣고 다시 commit
1 2 3 4 5 6 |
$ git config --global user.email "you@example.com" $ git config --global user.name "Honggildong" $ git commit -m "first upload" |
9. 로컬컴에서 서버로 연결 및 commit 된거 전송
1 2 3 4 5 6 |
$ git remote add origin ssh://gituser@111.222.222.111/data/git/html # 수정은 $ git remote set-url origin ssh://gituser@111.222.222.111/data/git/html |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ git push origin master gituser@111.222.222.111's password: Enumerating objects: 1588, done. Counting objects: 100% (1588/1588), done. Delta compression using up to 2 threads Compressing objects: 100% (1568/1568), done. Writing objects: 100% (1588/1588), 32.72 MiB | 7.23 MiB/s, done. Total 1588 (delta 376), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (376/376), done. To ssh://111.222.222.111/data/git/html * [new branch] master -> master |
10. 로컬 컴에서 로그 확인
1 2 3 4 5 6 7 8 |
$ git log commit 696b1f683190a1e963c47bcee6f13b6c5ec44377 (HEAD -> master, origin/master) Author: Honggildong <you@example.com> Date: Sun Oct 30 17:36:13 2022 +0900 first upload |
11. 서버 에서 로그 확인 (로컬 컴과 같은 내용이 확인됨)
1 2 3 4 5 6 7 8 |
gituser@localhost:/data/git$ git log commit 696b1f683190a1e963c47bcee6f13b6c5ec44377 (HEAD -> master) Author: Honggildong <you@example.com> Date: Sun Oct 30 17:36:13 2022 +0900 first upload |