-Git과 Github
Git(VSC, Version Control System, "프로젝트의 버전을 손쉽게 다룰 수 있게 해주는 시스템") : 버전 관리 시스템 중 가장 유명한 프로그램
Github : Git의 데이터를 저장하는 서버
여러 대의 컴퓨터와 하나의 메인 서버가 소통하는 방식이 바로 Git(컴퓨터들)과 Github(서버)의 관계
코드가 서버에만 있는 것이 아니라 각자의 컴퓨터에 분산되어 있기 때문에 분산형 버전 관리 시스템(DVCS, Distributed VCS)라고 불림
-Git 설치
Git의 필요성
: 카톡이나 메일 처럼 소스코드의 저장장소가 산발적으로 일관성이 없는 것과는 다르게 소스코드 백업을 안전하게 할 수 있음
git 의 상태
- untracked : git이 변경사항을 추적하지 않는 파일
- modified : 파일을 변경했지만 아직 스테이징 되지 않은 상태
- staged : 변경된 파일을 커밋이 될 리스트에 포함시킨 상태
- committed : git 데이터베이스에 하나의 버전으로 저장된 상태
-초기 설정 : <NAME>, <EMAIL>
-디렉토리 생성
-git repository 생성(untracked 상태)
git init : 디렉토리를 git 레포지토리로 만들어 디텍토리 내의 파일을 git이 추적하게 함
-파일 생성하고 스테이징하기 (untracked 상태 -> staged 상태)
$ touch test.txt : test.txt파일 생성
$ git status : 현재 git 레포지토리의 상태, 즉 디렉토리 내 파일들이 untracked 상태, modified 상태, staged 상태, committed 상태 중 어떤 상태인지 알아볼 수 있음
-git이 이 파일을 추적하고 버전에 포함시키도록 하기 위한 명령어 : git add <FILE>
changes to be committed ; staged 상태. 즉, 커밋이 되기로 예정된 파일
(스테이징한다는 것은 파일을 staged 상태로 만든다는 것)
git add <FILE> : <FILE> 을 스테이징 함 (예정상태로 만듦)
- git add . : 모든 파일을 자동으로 staged 상태로 만들 수 있음
-커밋해서 하나의 버전으로 만들기 (staged 상태 --> committed 상태)
스테이징된 파일들을 커밋해서 하나의 버전으로 만드는 과정
커밋할때 당시의 레포지토리의 파일들이 하나의 스냅샷으로 찍혀서 하나의 버전으로 됨
git commit : 스테이징된 파일들을 커밋하여 하나의 버전으로 만들어 git 데이터 베이스에 저장함
- git commit -m <MESSAGE> : 커밋 메세지를 바로 입력할 수 있음
- (커밋 메세지에 의존하여 당시의 프로젝트의 상황을 살펴보기 때문에 의미있게 작성해야 함)
-변경된 파일 커밋하기 ( modified 상태 --> staged 상태 --> committed 상태)
새로운 기능이나 변경사항을 추가하는 경우 : 다시 커밋하여 하나의 버전으로 만들어야함
echo "My test memo" > test.txt : "My test memo"라는 데이터를 test.txt 파일에 추가
cat test.txt : test.txt 파일의 내용을 보여줌
git add . : 모든 파일을 스테이징 함
git commit -m " My memo file" : 스테이징된 파일들을 커밋
-커밋 기록 보기 : 초기 설정 시 입력하였던 이름과 이메일이 나옴
-GitHub : git 레포지토리를 다른 사람과 공유할 수 있는 플랫폼
-github 레포지토리 생성
-git에서 레포지토리 공유
- git remote add <NAME> <URL> : <NAME> 이라는 별칭으로 <URL> 의 원격 레포지토리로 등록함.
- git remote rm <NAME> : 원격 레포지토리 삭제
- git remote rename <NAME> <NEW> : 원격 레포지토리의 별칭 수정
git remote add : 원격 레포지토리 URL 등록
git add : 스테이징
-레포지토리 공유
$ git push <NAME> <BRANCH> : <NAME> 의 원격 레포지토리로 변경사항을 업데이트
-원격 레포지토리 가져오고 수정하기 : 다른 컴퓨터에서 원격 레포지토리를 가져와서 작업하거나, 다른 사람의 레포지토리를 가져와서 작업할때. <USER>를 자신의 아이디로 치환하여 다음 명령어를 입력하면 됨
홈 디렉토리에 git-test-remote라는 디렉토리가 생김 -> 해당 디렉토리에는 git push로 공유했던 프로젝트가 그대로 가져와짐
$git clone <URL> <NAME> : <URL>의 원격 레포지토리를 가져와서 <NAME>디렉토리에 복제
-clone으로 받은 저장소에 브랜치로 이동하기
git에서 clone으로 저장소를 내려받으면 저장된 브랜치들을 사용할 수 있음. 그러나 처음에 git branch로 확인하였을때 브랜치들이 보이지 않음!
-a 옵션을 사용하면 브랜치들을 볼 수 있음
$ git checkout origin/master : 임시로 원하는 브랜치로 이동하는 것. 따라서 로컬 브랜치가 만들어지지 않음
$ git checkout -b master origin/master : 로컬 브랜치 만드는 것
$ git checkout -b master origin/master : master라는 이름으로 브랜치 생성
$ git checkout --track origin/master : 브랜치 이름을 짓지 않고 remote 저장소에 브랜치 이름을 그대로 로컬 브랜치고 생성
-작업 업데이트
'2021 시선 - 겨울 방학 스터디' 카테고리의 다른 글
6. user.github.io (github 페이지 만들기) (0) | 2021.01.29 |
---|---|
5. Pull Request (0) | 2021.01.29 |
4. 마크다운 (0) | 2021.01.26 |
3. 1월 22일 스터디 과제 (0) | 2021.01.23 |
2. Git (0) | 2021.01.22 |