1.GIT과 GITHUB란?
Git : 파일의 변경사항들을 여기저기 어디서나 관리할 수 있는 기술
Github : Web service로 Git을 사용할 수 있는 원격 공간, 저장소 제공
2.GIT작동방법
git의 프로젝트에 담겨 있는 데이터들은 일종의 스냅샷이라고 볼 수 있음
파일 자체를 저장한다기보다는 수정 내역을 저장 이전과 달라진 것을 갱신해줌
git init
: '나 이제 이 폴더에서 git이라는 기술을 사용할거야' 라고 컴퓨터에게 말해줌
=현재 폴더를 git 저장소로 변환 (최초 1회만)
git add
: 스테이지 영역에 파일을 올리기
=파일을 원격 저장소에 추가
git commit
: 로컬 저장소에 저장을 하기
-> 저장하는 것 : git add 했던 파일의 변경 상태
=파일의 변경사항을 저장소에 스냅샷으로 기록
git log
: 내가 버전관리 해두고자 했던 파일들의 기록
=commit한 기록들을 볼 수 있다
git push
: 인터넷에 내 컴퓨터에 저장해놨던 변경사항들의 기록과 파일들을 올려 남들이 다 볼 수 있게 함
= 해당 작업이 다 끝났을 때 사용, 원격 저장소에 해당 변경사항들이 github에 업로드 됨
3.용어 정리
로컬,local : 내 컴퓨터
원격,리모트,remote : 깃허브 사이트
이슈, issue : 작업을 하기 전 "내가 ~를 할거다"작성
풀리케,피알,PR,pull request : 내컴퓨터에서 작업을 다 끝내고 "나 ~작업했어"라고 사이트에 올리는 것
4.사용법
1) 깃허브 사이트에서 repository 생성
2) code라고 있는 버튼 클릭 + URL 복사
3) 내 컴퓨터 바탕화면에 폴더 생성
4) 윈도우 기준 해당 폴더를 우클릭 -> Git Bash Here클릭
5) 해당 만든 폴더 안에 미리 만들어준 원격에 있는 저장소 내용을 내 컴퓨터에 다운
git clone "아까 2)에서 복사한 URL"
6) ls -al : 내 폴더 안에 어떤 파일들이 있는지 보여줌
만약 폴더 안에 .git이라는 파일이 없다면 git init
master라는 표시가 보인다면
git checkout main
7) git status : 변경사항이 생긴 파일 알려줌
untraked files -> commit이 안된 파일
git add . : 내 로컬 저장소에 파일을 올려주기 전인 스테이지에 올려주기
git commit -m "적고 싶은 내용" : 내 로컬 저장소에 파일 올려주기
8) git push origin main
: 원격저장소의 main브랜치에 commit한 파일을 push하기
5.Issue 올리기
1) 깃허브의 내 이름 repository들어가기
2) 왼쪽 위 Issues클릭
3) new Issues 클릭
4) get started 클릭
5) #뒤에 숫자 기억
6) 4. 진행
6. Pull Request올리기
1) cmd창에서 push를 하기
2) 깃허브 페이지에서 compare&pull request 클릭
3) create pull request 클릭
+ file changed에 들어가면 코드를 자세하게 볼 수 있음 => 협업에서는 코드리뷰라고 부름
4) 코드리뷰 + merge
7.가장 많이 쓰이는 명령어
git remote add <url>
: 내 컴퓨터에 있는 파일을 깃허브의 repository랑 연결할 때 사용
git clone<url>
: 내 컴퓨터에 해당 url에 있는 프로젝트를 내 컴퓨터에 다운
git init
: 로컬 git 저장소를 설정
git status
: 현재 작업중인 파일의 상태를 확인
git add
: 변경사항이 생긴 저장하고 싶은 내용들을 스테이지에 올림
git commit
: 스테이지에 올린 것을 저장함
-> commit을 하기 시작하면 commit 기록이 남아서 commit했던 시점들로 이동 가능
git push
: 저장한 것들을 github에 올림
git pull
: github에 있는 내 파일들과 내 컴퓨터의 파일들의 상태가 다를 경우 pull을 해서 github에 있는 파일들을 내 컴퓨터로 덮어씌움
git log
: commit했던 이력들을 확인할 수 있음
+)리눅스 명령어
cd : 원하는 폴더로 이동하는 명령어
ls : 해당 폴더에 어떤 파일들이 있는지 보여주는 명령어
touch : 파일을 생성하는 명령