Git을 사용하기 위한 필수 문법
git init
프로젝트 폴더에 가서 git init을 실행하면 폴더안에 .git 폴더가 생성됨. 이제 Git을 사용 할 수 있음.
git status
git statis 를 실행하면 폴더에서 현재 파일들의 상태를 볼 수 있다. commit을 하지않으면 빨간색 파일들이 있다.
commit을 해야 Git에 파일이 저장되고 이 Git이 '이파일이 내가 관리해야 하는 파일이구나' 알게 됨.
git add
git status를 했을때 빨간 이름들은 commit되지 않음. git add . 을 하면 빨간색 이름들을 모두 commit 대기중으로 바꿔준다.
git commit
파일이 대기중인것들을 git에 저장하려면 git commit -m "설명" 하면 현재 커밋한 파일들에 설명을 할 수있음.
git log
마지막으로 commit 된 내역을 볼 수 있는 명령어 이다.
Github의 탭들
Watch = 저장소에 변화가 있을때 알림오게 설정
Star = 좋아요 기능과 같음
Fork = 남의 저장소를 복사하여 내 저장소에 붙여넣기하는 기능
Code = 현재 저장된 코드를 보여줌
Issues= 남들이 자기 저장소를 쓰는데 문제가 생길경우 문제 제기하는 공간
Pull requests = 남들이 코드를 직접 수정해서 올려주는 곳. 이걸 통해 남의 코드에 기여할 수 있고, 기여 받을수 있다.
git remote
git remote 명령어가 원격 저장소를 관리할 수 있는 명령어
git remote add origin [원격지 주소] 라고하면 origin이라는 이름으로 원격저장소 주소를 등록함. 이제부터 origin이라는 이름을 사용하면 저장소에 접속가능
굳이 origin이라고 안해도 됨. 만약 origin이라는 원격 저장소를 지우고 싶다면 git remote remove origin 하면됨.
git push
원격저장소와 연결성공. git push origin master 를 하게되면
origin은 원격 저장소 이름이고, master는 현재 사용하는 컴퓨터의 브랜치 이름이다.
master가 현재 commit이 저장된 곳이라고만 알아두자.
이 과정을 수행하면 원격 저장소에 commit한 내용들이 반영된다.
git pull
git pull은 다른사람이 PR을 통해서 코드를 업데이트하거나 누군가가 push했을 경우 그 내용을 클라이언트로 내려받는 명령어이다.
git pull origin master 를 하게되면 origin(원격 저장소) 의 내용이 master(로컬)로 복사됨
git clone
svn의 checkout과 같은 역할로 git clone 주소 를 하게되면 저장소의 내용을 다운로드받고 자동 init이 됨.
git diff
파일을 수정하고 git status를 하면 modified 된 파일들이 나오는데 git diff를 하면 어떠한 파일이 어디가 수정되었는지 확인할 수 있다.
+와 -로 수정된 내용들이 나오게됨.
파일이 많아지면 보기 힘들기에 Git GUI를 사용하면 좋음.
위의 그림은 Untracked , Unmodified, Modified, Staged 4개의 상태를 보여준다.
Unmodified는 커밋을 한 후 변경점이 없을때, Modified는 파일을 변경했을때, Staged는 변경한 파일을 add 했을때의 상태이다.
초록색으로 표시되는 파일이 Staged상태.
Staged는 이제 커밋 될 준비가 완료되었음을 뜻함.
Staged파일을 커밋하면 다시 Unmodified가 된다.
git checkout
Modified 상태의 파일을 add 하지않고 다시 Unmodified로 되돌림. 수정을 잘못하여 파일을 원상태로 돌리고 싶을때 사용함.
git checkout 파일명 하면 마지막 커밋된것으로 돌아옴.
git reset
만약 add 까지 해서 Modified가 아니라 Staged상태(commit준비 완료) 라면 원래대로 되돌릴때 사용하는 명령어
git reset 파일명 하면 Staged상태에서 Modified 상태로 돌아감. 그다음 git checkout 파일명해서 마지막 커밋시점으로 돌릴 수 있음.
commit을 한 후에 되돌릴때도 git reset이 사용된다. 옵션이 3가지가 있는데
--soft, --mixed, --hard 이다.
--soft는 파일들을 commit 후의 Unmodified에서 commit 직전의 Staged 상태로 만든다.
--mixed 는 Unmodified에서 commit 전의 Modified상태로 만든다.
--hard 는 Unmodified에서 commit 전의 Unmodified로 만든다. 다 날려버리는 것이다. --mixed가 기본옵션.
git reset HEAD~1 을 하면 HEAD는 현재 커밋의 위치를 나타내고 ~1은 commit 한개전으로 돌아가라는 뜻이다.
아무런 옵션을 넣어주지않았으므로 기본적으로 --mixed가 적용됨.
--mixed는 Unmodified에서 이전 commit의 Modified 상태로 돌아감.
git revert
git revert 는 reset과 비슷하지만 이전 commit 내용을 새 commit으로 만들어서 저장한다.
우선 commit 한 후에 git revert HEAD 를 한다. 현재 HEAD를 취소하고 이전 HEAD로 돌아간다는 뜻이다.
사용은 commit을 하고 이미 서버에 푸쉬했을때 커밋내용을 변경하고 싶을때 사용한다.
브랜치는 다음에