git은 형상관리, 버전관리에 유용한 응용프로그램이다.
git을 사용하는 방법은 다음과 같다.
git bash here을 누르면 다음과 같은 창이 뜬다.
git의 방식은 다음과 같다
다음과 같이 작업영역에서 글을 작성하고 -> stage에 파일을 올리고(add) -> head에 파일을 올리는(commit) 방식으로 진행한다.
다음과 같은 형태로 진행된다,
이 때, stage에 파일이 올려진 상태로 작업영역에 파일이 올려진다던가,
stage 영역에 올려진 파일이 수정된다던가,
와 같은 일이 일어나면, commit 단계로 진입하지 못한다.
따라서 다시 작업영역부터 add -> commit 단계를 거쳐야 한다. commit 할 때는 branch의 이름을 지정해야한다
이 때, 같은 파일이라도 작업영역에서 재수정해서 다른 branch로 commit할 경우 서로 다른 해쉬(일종의 암호)를 가진 가지가 만들어진다. 다음과 같이 하면 이 해쉬를 볼 수 있다.
헤드는 가지가 많아지면 많아질수록 가장 최근에 만들어진 쪽으로 움직인다.
이 해쉬를 이용하여 챕터 2까지 가 있던 헤드를 챕터 1로 돌릴 수 있다. 이 때 이전 내용은 삭제된다.
파일을 수정할 때 master 가지에서 수행하는 것 보다는, 다른 가지에서 만들어 master 가지에 붙이는 것이, 이후에 파일을 수정할 필요도 없고 형상관리에 편한 방법이다.
그러기 위해서는 가지를 새로 만들 필요가 있다.
git branch는 현재 있는 가지를 확인 할 수 있는 명령어이다.
git branch (가지 이름)은 가지를 추가시킬 수 있는 명령어이다.
다시 git branch를 입력하니, feature 이라는 가지가 새로 추가된 것을 확인할 수 있다.
(feature은 주로 실험적 변경을 할 때 사용하는 가지라는 약속이 되어 있다.)
git checkout (가지이름)을 통해 내가 있는 가지 위치를 이동할 수 있다.
git branch 명령어를 통해 초록색으로 마킹이 되어 있으면 그 가지에 현재 존재하고 있다는 뜻이다.
이후에 파일을 수정하게 되면 feature 가지의 파일만 수정 되고, master 가지의 파일을 수정되지 않는다. 이렇게 파일을 수정한 뒤, 원하는 가지에서 master 가지로 파일을 다시 재전송 하고 싶다면, marge (가지 이름) 명령어를 이용하면 된다. 이 때, checkout 을 이용해 반드시 master 가지에 존재해야 한다.
이렇게 만들어진 가지는 Github로 이동시킬 수도 있는데, 먼저 Github의 회원가입이 필요하다.
한 번 파일을 옮겨보는 실습을 할 것이다.
다음과 같이 Github 홈페이지에서 다음과 같이 파일을 저장할 respository의 이름을 설정한다.
그럼 다음과 같이 github의 주소가 생성된다. 오른쪽의 버튼을 눌러 주소를 복사한다.
다음 github에 올릴 파일에 오른쪽 클릭으로 git을 생성한다.
마찬가지로 add - commit을 이용해서 master가지에 파일을 올린다.
git와 github를 연결하는 명령어를 입력한다.
다음 명령어를 이용하여 연결한 후,
push 명령어를 통해 github의 master/origin 가지로 파일을 보낸다.
git의 파일이 삭제된 경우 github와 형상이 달라서 github와의 이동에 문제가 생길 수 있다.
이 때도 간단하게 git add . -> commit 이후에 origin master 로 push 하면 된다.
이 설정을 다른 컴퓨터로 간단하게 가져올 수 있는데, clone (github의 주소)를 이용하면 된다.
다음과 같이 github에서 주소를 복사한 후에
다음과 같이 clone 명령어를 이용해 github의 형상 전체를 가지고 올 수 있다.
(빈 파일을 하나 만들어서 하는 것이 형상의 오류 없이 가지고 올 수 있다.)
'컴퓨터 기초' 카테고리의 다른 글
의사코드(pseudocode) (0) | 2022.12.12 |
---|---|
디자인 패턴 1. Singleton Pattern(싱글톤 패턴) (0) | 2022.06.21 |
응용프로그램 설치하기(2) (0) | 2020.03.18 |
응용프로그램 설치하기(1). (0) | 2020.03.16 |
컴퓨터 기초 (0) | 2020.03.16 |