overview ✨
- GIT 이란?
git --version
git init
git status
- Working Directory, Staging Area, Git repository (LOCAL / REMOTE)
- gitignore
- Git vs GitHub
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. = 분산 버전관리 시스템
여러명이 한 사이트의 코드를 작성한다고 할 때, 한명은 유저관련된것을 만들고 또 다른 사람은 상품에 관련된 것을 만들고나서! 이 두 사람이 각각 만든것을
git init
입력하기git status
를 입력하면 된다.아무것도 안한 상태인 처음이 Working directory
이다. 여기서 git add 를 입력하면 working directory에 있었던 파일들이 Staging Area로 올라가게 된다.
Git repository(git 저장소)에 넣기 전에 대기시켜주는 장소로, working directory에서 git add
로 올라온 파일들이 있는 곳이다. 이제 여기서 git commit
을 입력하면 local repository
로 저장된다.
The git add
command adds a changes in the working directory to the staging area. It tells Git that you want to include updates to a particular file in the next commit. However, git add doesn't really affect the repository in any significant way.
The git commit
command is used to save your changes to the local repository.
The git push
command is used to upload local repository content to a remote repository. Pushing is how you transfer commits from your local repository to a remote repo.
node_modules
와 같은 폴더나, 혹은 git 저장소에 저장시키지 않아도 되는 폴더, 파일들을 .gitignore
파일에 적어주면 git 추적이 되지 않는다.
🤔 node_modules 는 왜 안올려도 되는걸까?
node_modules
는 라이브러리들의 실제 코드가 작성되어 있는 아주 무거운 폴더이다. 그렇기 때문에 github에 파일을 올릴때는 올리지 않는다. 그래서 필요한게 바로 package.json
파일이다. 이 파일(package.json)에는 추가로 설치한 라이브러리들의 이름과 버전이 "dependencies" 부분에 작성되어있는데, repo들을 클론받은 후 npm install
을 터미널에 입력해주면 이 파일에 적힌 라이브러리들의 이름과 버전을 이용해 필요한 라이브러리들을 알아서 설치해주는거다.
Git is a revision control system, a tool to manage your source code history.
깃은 소스코드를 관리할 수 있는 툴이다.
GitHub is a hosting service for Git repositories.
깃허브는 깃으로 관리하고 있는 코드들을 깃헙에 올린다음에 깃헙에서 많은 사람들과 공유하고 수정하는 것을 하게 해주는 클라우드 서비스이다.
So they are not the same thing : Git is the tool, GitHub is the service for projects that use Git.