Github에서 git 시작하기
거의 모든 데이터는 nextcloud에 백업을 해두는데, 운영하고 있는 시스템 설정 파일들은 github에서 관리하는게 버전관리도 되고 좋은 것 같다.
소스코드는 아닌지만 하도 이랬다저랬다 설정을 많이 바꾸는 탓에. mysql 덤프 파일도 용량이 적어서 github을 이용해서 백업하면 좋은듯.
Create a New Repository
github에 계정을 만들고 로그인을 하면, 왼쪽 탭 [New] 버튼을 클릭해 새로운 repository를 생성할 수 있다.
아래와 같이 중복되지 않는 이름을 정하고 public | private 중에 선택을 한다. 여기서 설정한 값들은 나중에 모두 변경 가능하다.
생성된 git repository의 웹페이지로 접근하면 다음과 같이 비어있는 내 repository와 함께 파일들을 업로드 하는 간단한 가이드를 알려주는데 알려준 명령어들을 그대로 따라하면 된다.
Linux 시스템이면 sh 환경에서 진행하면 되고, Windows 환경인 경우 git bash 콘솔에서 진행하면 된다.
git config
먼저 동기화를 진행할 디렉토리로 이동해서 github 계정 정보를 설정한다.
git config user.name "${Github Username}"
git config user.email "${Github Email}"
시스템에 전역으로 설정하려면 다음과 같이 명령.
git config --global user.name "${Github Username}"
git config --global user.email "${Github Email}"
git init
github repository와 동기화가 진행될 디렉토리에서 git init
명령을 수행하면 숨김 파일인 .git
디렉토리가 생성되며 여기에 앞으로 관리할 파일들과 변경사항 그리고 원격 repository 정보들이 기록될 데이터베이스가 된다.
$ git init
Initialized empty Git repository in ../httpd/2.4.27/conf/.git/
git add
git add ${Some file}
명령으로 버전관리가 될 파일들을 추가할 수 있다. 다음과 같이 *
를 사용하면 현재 경로의 모든 파일/디렉토리를 관리한다.
$ git add *
git commit
지금은 초기 등록이기 때문에 특별히 변동사항은 없지만, 소스 수정이 발생한 이후 git commit
명령을 수행하면 이전에 커밋됐던 상태에서 지금 상태까지의 변경분을 기록한다. -m
옵션으로 현재 변경분에 대한 메시지를 명령어 내에서 바로 남길 수 있다.
$ git commit -m "apache httpd confs. first commit."
[master (root-commit) 4f10d65] apache httpd confs. first commit.
28 files changed, 5796 insertions(+)
create mode 100644 extra/httpd-ssl.conf
create mode 100644 extra/httpd-vhosts.conf
create mode 100644 httpd.conf
create mode 100644 magic
create mode 100644 mime.types
...
...
```
### git remote add
여기까지 설정한 부분들은 local git 데이터베에이스를 관리한 것이고 이를 github 클라우드의 repository와 동기화 하기 위해서 맨처음 생성한 github repository를 remote 저장소로 등록해준다.
```bash
$ git remote add origin https://github.com/${USERNAME}/${REPOSITORY_NAME}.git
git push
git push
명령을 통해서 커밋된 내용들을 저장소에 밀어넣는다. 이 단계가 수행되어야 내 소스가 안전하게 보관이 된 것이고, 공유가 가능한 상태가 된다.
$ git push -u origin master
Username for 'https://github.com': *********
Password for 'https://**********@github.com':
Counting objects: 23, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (23/23), 45.23 KiB | 0 bytes/s, done.
Total 23 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), done.
To https://github.com/**********/${REPOSITORY_NAME}.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
다시 맨 처음 생성했던 repository 웹페이지에 접근하면 다음과 같이 커밋 로그와 동기화된 파일들을 확인할 수 있다.