버전관리시스템
소스코드의 변경상황을 관리하는 도구
백업/타인과의 공유를 통
해서 협력이 가능하도록 하는 것
Git과 github는 다르다.
Git은 파일의 수정 추가 및 업로드를 해주는 역할을 한다.
Github는 자신이 업로드한 파일을 Git이 없어도 볼 수 있고 다른사람과도 공유가능한 것
git에서 Drobox client와 같은게 Git client 이다. Git client 프로그램들에는 GitCommendLine/sourcetree등등 다양한 클라이언트가 존재한다.
git은 오픈소스의 거대한 생태계 위에서 만들어진 거기 때문에 다양한 프로그램들이 존재.
이것을 Git server에다가 저장한다. (git 원격저장소) = github.com 이다.
Github를 사용해야되는 이유?
대부분의 개발자가 사용하기 때문이다.
협업을 하기위해서는 꼭 필수적, 개발자가 아니더라도 이것을 통해서 파일관리를 할 수 있다
사용순서
New Repositories
파일/프로젝트 소스코드를 저장하기 위한 저장소를 만든다.
새로운 파일 작성 및 업로드
파일에 대한 일지 작성가능
GitHub에서 중요한 용어들
Commits -> 버전수
contributors -> 협업자
star -> 좋아요
watch -> 구독자
fork -> 복제한수
Commits
버전을 의미한다.
최신 순서대로 누가 commit을 했는지에 대한 정보
파일을 눌러보면 파일에 새로 추가된 코드 삭제된 코드를 확인할 수 있다.
commit에서도 다른 사람이 작성한 코드나 파일에 댓글을 통해 소통을 할 수 있다.
Commit를 통해서 버전관리를하고 어떤 일이 일어났는지 추적을 할 수 있고 어떤 변화/ 누가 수정했는지를 확인 할 수 있다.
Issues
문제점에 대해 논의하기위해서
버그를 해결하기 위한 것이나
담당자가 있을 수 도 있고 댓글도 달 수 있다.
New issues 를 통해서 새로운 이슈 작성
담당자 설정
라벨(카테고리)
이 이슈가 어떤건지 버그인지 뭔지 표시
이슈 닫기
이슈가 해결되면 닫기
내컴퓨터에서 작업한 것을 원격저장소로 업로드하기 위해서는 git이라는 프로그램을 깔아야한다.
내컴퓨터와 git허브를 연결시켜서 파일을 서로 주고받도록 해야한다.
연결시키기 위한 Github상의 주소
Wiki
프로젝트에 참여하는 방법이나 프로젝트에 관련된 지식같은 것을 위키피디아 처럼 정리할 수 있음
Insights
프로젝트에 관한 지표를 볼 수 있다.
공헌자들의 핵심 맴버
commit수의 빈번도등등을 확인
Code frequency는 코드가 활발히 작성되고 있는지의 대한 빈도
Network
forks 오픈소스를 복제하는 기능
Actions
누군가가 push했을 때 그 코드에 문제점은 없는지에 대한 Test를 한다던가
업무일지에 자동으로 저장시킨다던가
Push의 대한 정보를 email을 보낸다던가. 할 수 있도록 설정해줄 수 있다.
Git 명령어
Git clone <저장소 주소> {저장소 위치}
저장소 주소와 git clone이라는 명령어로 복제를 한다.
Git diff -> Git status
마지막 버전과 현재 저장소에 파일들과의 차이점이 있는지 알려줘
Git add <파일명>
커밋할꺼야 준비해
Git commit -m “{설명}”
Commit 한다.
Git log
Git의 히스토리를 보여줘 버전을 보여줘
Git push
지금 지역저장소에 있는 파일을 퍼블릭 저장소에 업로드 시켜줘
Git Branch
현재 깃 브랜치가 뭐가있고 어떤 것을 사용하고 있는지 볼 수 있다.
Git Branch <브렌치 이름>
브렌치 생성
브랜치 이름은 보통 exp라던가 회사마다 붙는 접두사가 존재한다.
Git checkout <브렌치 이름>
해당 브렌치로 이동한다.
Git log -–branches --decorate
브랜치와 마스터 사이와의 차이를 보는 법
–branches -> 현재 해당되있는 브렌치말고도 모든 브랜치를 보여준다.
MASTER 브렌치는 지금 버전 2까지
Exp 브랜치는 버전 4까지 있는 상태이고
HEAD -> exp 현재 체크아웃 되어있는 브랜치는 exp다
Git log -–branches –decorate –graph
좀더 구도화해서 보기 편하게 해주는 방법
브랜치의 흐름도를 볼 수 있다.
Master 와 브랜치가 서로 각자의 길을 걷고있을 때 보기 편하다.
사진에서 보면 exp라는 브랜치는 master의 버전 2에서부터 파생된 브랜치임을 알 수 있고
Master 브랜치는 버전 5전에는 버전 2였다는 것을 알 수 있다.
두 브랜치의 공통적인 버전이 무엇인지 알수있다.
Git log -–branches –decorate –graph –oneline
한줄로 더 짧게 확인가능
Git log master ..exp
현재 마스터와 exp브랜치와의 차이점이 뭐냐
3번과 4번이 마스터에는 없고 exp에는 존재하는 것이다.
Git log exp ..master
그 반대
Git log -p exp ..master
어떤 소스코드 변화가 있는지 보여준다
Git diff master..exp
두 브랜치 사이에 차이점
merge
exp브랜치에서 작업한 커밋의 내용을 마스터 브랜치에 옮기는 것
exp 브랜치를 마스터 브랜치로 가져오고 싶을 때
master 브랜치로 체크아웃 한다음에
git merge exp 명령어 입력
<Git log -–branches –decorate –graph –oneline>
병합하고 난 뒤에 exp 브랜치도 maste엔 있고 exp 브랜치에 없는 것을 커밋하고 싶은 경우에는
똑같이 exp브랜치로 체크아웃 한다음에
Git merge master 를 하면 된다.
Exp는 master와 똑 같은 상태가 되었다.
이젠 exp는 쓸모없어 졌다 싶으면
다시 마스터로 체크아웃한뒤에
Git branch -d <브랜치 명>
브랜치를 삭제한다.
git push -u origin <branch-name>
로컬 브렌치를 원격에도 똑같이 만들어준다
<참고영상 YOUTUBE-생활코딩>
'IT 공부 > git' 카테고리의 다른 글
[ Git ] branch 이용하기 ( + branch 충돌 해결 방법) (0) | 2022.01.19 |
---|---|
[ Git ] 원하는 Commit으로 돌아가고 싶은 경우 (soft와 hard) (0) | 2022.01.18 |
[ Git ] 기본적인 동작원리(working Dir / Staging Area / Local repo / remote repo) (0) | 2022.01.17 |
[ Git ] untracked content 에러 해결 (0) | 2021.12.30 |
Git - 쉽게 토큰 인증방식으로 변경하기 ( Windows) To change to token authentication (0) | 2021.08.14 |