ERP 개발 시 SVN만 사용했었는데 Github에 대해서 알고싶어서 정리!
SVN만 사용하다가 Github를 써야하는 분들이 참고하면 좋을 것 같습니다.
소스 관리를 편하게 하고싶을 경우 SVN에는 TortoiseSVN이 있는 것 처럼 Github는 SourceTree가 있습니다.
SourceTree를 사용하면 커맨드를 몰라도 버전관리를 할 수 있고,
어느 환경에서든 Github를 사용할 수 있기때문에 SourceTree를 사용하는 것이 좋다고 생각하지만
기본 커맨드는 알아두는게 맞는 것 같습니다.
Github도 SVN처럼 UPDATE, COMMIT, ROLLBACK, REVERSION 관리 등만 알면 될 줄 알았는데 조금 개념이 다릅니다.
SVN은 저장소가 서버에 있고
Git은 저장소가 자신의 컴퓨터에 있어 온라인저장소를 만들어 사용합니다.
그래서 COMMIT만 한다고 끝이 아니라 PUSH까지 해줘야합니다.
Github 설치, 회원가입, 저장소 생성은 구글링을 하자.
Github 초기 설정
온라인 저장소를 만들었다면
1. Github 초기 설정(Email, 이름)
2. 내 컴퓨터에 Git 저장소를 만들고 온라인 저장소와 연결을 해줘야합니다.
우선 Git Bash를 실행시켜 다음 명령어를 통해 Email과 이름을 설정합니다.
git config --global user.email "test@gmail.com"
git config --global user.name "helloworld"
저장소를 만들 폴더로 이동해 git init 명령을 실행하면 저장소가 생성됩니다.
Window 탐색기에서 해당 폴더를 보면 숨김 폴더로 .git 폴더가 생성이 된 것을 확인할 수 있습니다.
테스트 용도로 README.md 파일을 만들고 add후 commit.
일단 따라하고 기본 명령어는 아래에 정리!
이렇게하면 내 저장소에는 README.md 파일이 올라갔지만
원격 저장소에 올리지 않았으므로 Github에서는 확인할 수 없습니다.
원격 저장소를 설정하고(origin을 해당 주소로 설정하고) PUSH를 해줘야합니다.
이렇게하면 Github에서 PUSH한 파일을 확인할 수 있습니다.
Github 기본 명령
정말 다양하고 많은 옵션이 있지만 일단 기본 명령부터 알아보겠습니다.
Git이 파일을 관리하게 하려면 README.md 파일을 추가했듯 저장소에 파일을 추가(add)하고 커밋(commit)해야 합니다.
무엇인가 변경을 해야한다면 순서는 다음과 같습니다.
pull -> commit -> push
Git 저장소 만들기 & 기존 저장소를 Clone하기(SVN의 Checkout)
git init
git clone https://github.com/tmkimm/github_test.git
파일의 상태 확인하기
git status
파일을 추가하기
git add 파일이름
git add *
git add *.*
git add .
변경사항을 커밋하기
커밋은 변경 사항을 내 컴퓨터에 저장한다는 의미. 하지만 아직 원격 저장소에는 반영되지 않은 상태.
물론 add 하지 않은 파일은 커밋되지 않습니다.
이미 add 명령을 실행했더라도 또 파일을 수정하면 다시 add 후 commit을 해줘야합니다.
이러한 명령을 반복하지 않기위해 commit 명령에 -a 옵션을 추가해주면
add 후 수정한 파일까지 자동으로 commit 해줍니다.
git commit -m "변경된 내용에 대한 코멘트"
git commit -am "변경된 내용에 대한 코멘트"
변경된 내용 푸쉬하기(원격 저장소에 올리기)
아래 명령어중 origin과 master는 각각 저장소와 브랜치를 의미합니다.
-u는 원격저장소로부터 업데이트를 받은 후 push한다는 의미입니다.
git push -u origin master
파일 삭제, 되돌리기, 충돌, 브랜치에 관련된 내용은 다음에 따로 정리
참조 사이트 : milooy.wordpress.com/2017/06/21/working-together-with-github-tutorial/
https://webclub.tistory.com/317
'기타' 카테고리의 다른 글
[Docker] Docker 호스트에 원격으로 배포하기(docker compose 이용) (1) | 2021.12.18 |
---|---|
[MacBook]맥북에게 5000번 포트를 빼앗겼을때 - error: bind EADDRINUSE null:5000 에러 해결 (8) | 2021.12.18 |
SVN checkout시 SSL 에러 해결방법(CentOS) (0) | 2021.11.05 |
REST API란, RESTful API 설계 가이드 (0) | 2021.01.20 |
[JWT] 서버 인증 이해하기 - JWT란, 서버 인증 / 토큰 인증 (1) | 2020.10.07 |