MY MEMO

[GIT] Git / GitHub 본문

STUDYING/GIT

[GIT] Git / GitHub

l_j_yeon 2017. 10. 9. 20:48

1. git/git hub (Version Control System)의 개념 잡기


출처 : https://www.youtube.com/watch?v=ImatGhE_9Ho (완전 잘 설명되어있어요!)



git init이라는 명령어를 입력하면


같은 디렉토리 내에서 .git이라는 파일이 생성된다.


.git은 staging과 local repository를 위한 파일이다.


1) Working directory

 : .git이 생성된 directory


2) staging

 : 파일의 snapshot을 저장하는 곳

  staging에 저장해 놓은 후 따로 local repository에 저장하거나, 한번에 올릴 수 있음


3) local repository

 : database라고 생각하면 편함

  파일과 파일의 version을 저장하는 곳


4) remote repository

 : git hub (온라인 상에 있는 repository)




5) branch


예를 들어 계산기라는 프로그램을 팀 프로젝트로 개발하고 나누기를 맡았다고 한다면


자신의 코드가 컴파일 에러가 났는데 push를 했다면 모든 팀 멤버가 고통..


따라서 master branch에서  feature branch를 생성한 후


feature branch에서 자신의 역할을 수행하면 나의 코드가 오류가 나더라도 다른 사람에게 피해가 가지 않음


나누기 기능 완료시 코드 리뷰를 진행할 수도 있고 최종적으로 feature branch를 mater branch에 merge함으로써 기능을 추가 가능


명령어


1) Commit : version마다 메모를 둘 수 있음 (누가 변경했는지 / 왜 변경했는지 / 몇번째 버전인지 등)


2) Check out : Commit된 파일을 수정할 때 사용하며 최근 업데이트된 파일을 다운 받아서 수정 가능


3) git clone


: remote repository에서 local repository로 git clone을 함


 즉 github에 있는 코드를 local repository로 다운로드



2. 실습해보기


1) git downloadhttps://git-scm.com/downloads


2) 자신이 원하는 파일 오른쪽 클릭 -> git bash here 클릭



3) git init : 깃 명령어를 사용할 수 있는 상태로 만들어줌


4) staging에 add하기


git status : 현재 파일이 무엇이 tracked인지 untracked인지 확인가능


git add 원하는 파일/폴더이름 : 원하는 파일만 add

git add . : 모든 파일 add (.은 꼭 space 띄우고)


5) Commit 하기


git commit -m "Message" : local repository에 저장, Message는 그 코드에 알맞는 메모


git status에 보면 tracked 되어있는 것을 볼 수 있음


+) On branch master

nothing to commit, working directory clean

라면 아직 아무것도 수정이 되지 않았다는 뜻


6) remote repository로 연결


git remote add 이름 url(자신의 github url) -> git url 뒤에는 .git을 붙여야한다 : 이름은 자신이 설정 가능 

ex) git remote add origin url.git


+) 만약 잘못 설정 시 : git remote rm 이름


git remote -v 



git push 이름 master : 자신이 master일 경우

ex) git push origin master


7) github에서 코드 받아오기


git pull 이름 branch(master인지 어떤 branch인지)

ex) git pull origin master


8) client에 아무 파일도 없을 때 코드 받아오기


git clone github주소


+) Error


1) git push 시 에러발생



에러 발생 원인)


현재 작업하고 있는 Repository가 서버에 있는 Repository보다 오래된 내용

push를 하게 되면 서버에 있는 최신 내용은 날아가고 현재 작업한 내용만 적용


해결 방법)


최신 내용을 Local에 적용한 후 올리기

git pull명령을 이용하여 작업한 내용에 최신 내용을 덧붙임 


+) git rebase 란 : https://git-scm.com/book/ko/v1/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-Rebase%ED%95%98%EA%B8%B0




git pull --rebase 이름 master

(만약 여기서 rebase 오류가 떴다면 git rebase --skip)


git push -u 이름 master


출처 : https://stackoverflow.com/questions/24114676/git-error-failed-to-push-some-refs-to


+) 추가


1) push된 파일 삭제하고 싶을 때


git rm -r --cached 삭제하고 싶은 file or directory이름

ex) git rm -r --cached Debug


git commit -m "remove Message"


git push 이름 master


Comments