Git은 소프트웨어 개발 과정에서 사용하는 버전 관리 시스템이며,
Github은 git이라는 툴을 이용한 웹호스팅 서비스이다.
즉, github는 일종의 창고이다.
개발자는 github로부터 고유의 공간, 저장소(Repository)를 대여할 수 있다.
그리고 git이라는 트럭을 이용하여 자신이 만든 소스코드를 repository 에 적재한다.
동시다발적으로 여러 명의 개발자들이 이 한 repository 에 있는 프로그램을 수정, 개발할 수 있다.
누군가가 수정한 부분이 문제가 되더라도 변경이력이 남기 때문에 이를 되돌리거나 고칠 수 있다.
1. ubuntu desktop에 git 설치하기. 및 github에 가입한 후 새로운 repository 생성하기.
$ sudo apt-get install git |
2. 자신의 repository를 컴퓨터에 내려받는다.
$ git clone https://github.com/userid/name.git |
3. repository로 이동하여 새로운 파일을 생성한다.
$ vi index.html |
** vi 편집기 사용법
i를 누르면 insert 모드로 변경되며 문서를 편집할 수 있다.
esc를 누르면 다시 명령 모드로 돌아갈 수 있고 q+enter를 입력하면 종료된다.
( :q! 변경을 무시하고 강제종료 / :wq 저장후 종료 )
4. 작업이 끝나면 add를 수행한다.
$ git add index.html |
add는 작업 내역을 스테이징 영역에 추가하는 것으로 commit에 앞서 수행된다.
[OPTION] add --all : 디렉토리내 모든 파일을 추가
5. repository에 작업내역을 저장하기 위해서 commit을 수행한다.
$ git commit -m "fix the problem" |
[OPTION] -m 작업내역을 입력
-am 변경된 모든 파일을 add함과 동시에 commit
** Please tell me who you are. 네가 누구냐 라고 묻는다면 이메일과 이름을 입력해준다. git config --global user.email "you@example.com" git config --global user.name "Your Name"
2021.8.13 부터 비밀번호 인증 대신 personal access token을 사용하라고 한다.
6. 상태 확인
$ git status |
7. 로컬 저장소의 내용을 원격 저장소에 반영
$ git push |
github에 내 컴퓨터에 저장된 repository의 내용을 업로드한다.
8. 원격저장소에 있는 최신 프로그램을 가져오기
$ git pull |
7과 반대로 github의 내용을 내 컴퓨터로 가져온다.
9. 기타 유용한 기능들
- 가지치기
개발 중 새로운 기능을 추가할 필요가 있을 때 branch 를 이용하면 편리하다.
branch는 서로 영향을 미치지 않기 때문에 새로운 기능을 추가하여 테스트해 본 뒤 원래의 프로그램에 병합하는 식으로 개발할 수 있다.
$ git branch |
현재 branch의 상태를 확인할 수 있다.
최초에는 master branch 만이 존재한다.
$ git checkout -b newbranch |
head는 현재 작업중인 브랜치를 가리키고 있다.
checkout은 head를 변경하는 명령어인데,
위와 같이 입력할 경우 브랜치가 존재하지 않아 새로 생성된다.
이 상태에서 작업을 마친 후 commit을 수행한다.
$ git checkout master |
다시 master branch로 이동한다.
$ git merge newbranch |
지금 head가 가리키고 있는 master branch에 newbranch의 내용을 병합한다.
** 이 때 master와 newbranch가 동일한 코드를 수정하였을 경우 merge conflict 오류가 발생한다.
예를 들어, welcome 이라는 문장을 newbranch에서 Welcome으로 수정하고
master에서는 welcome!으로 변경한 경우 merge를 할 수 없다.
파일을 다시 열어보면 다음과 같이 표시되는데,
<<<<<<< HEAD
<h1> Welcome </h1> <!--내가 수정한 버전-->
======= <!--경계선-->
<h1> welcome! </h1> <!--충돌된 버전-->
>>>>>>> 9102c38f2c2ef637ecbdd940c1d4fc2cf358ec91 <!--해시값-->
아래와 같이 수정하고
<h1> Welcome! </h1>
다시 commit을 하면 된다.
- 로그
$ git log |
- 지금까지 commit 한 내역을 확인할 수 있다.
- 리셋
git log를 통해 commit의 해시값을 알 수가 있는데,
① $ git reset --hard 39ea5f3..... ② $ git reset --hard origin/master |
위 ①과 같이 commit의 해시값을 입력할 경우 해당 commit으로 돌아가게 되며
그 이후의 기록은 모두 사라진다. (--hard)
②의 경우 origin/master는 원격 저장소의 master branch를 의미하며,
지역저장소에서의 작업내역을 모두 초기화하게 된다.
- 다른 원격저장소의 복사본 만들기 : fork
- github pages
① username.github.io 로 새 repository를 만들고,
② index.html 파일을 생성한 후
③ github repository - setting - pages 에서 username.github.io 를 클릭하면 자기만의 웹사이트가 만들어진다.
'ETC' 카테고리의 다른 글
[블로그 만들기] Github page에 Gitbook 장착하기 (0) | 2022.08.07 |
---|---|
Git 원격 저장소 만들기 (0) | 2022.07.19 |
컴퓨터는 왜 논리적인가? (0) | 2021.12.27 |
COM surrogate 사살하기 (8) | 2021.11.02 |
Eclipse와 github 연동하기 - 새 프로젝트 (0) | 2021.10.28 |
댓글