👉 github에 업로드 하는 순서
저장소를 초기화하기 위해 사용하는 명령어로, 시작할 때 한 번만 해주면 된다.
저장소로 사용하려고 하는 directory로 이동한 후 해당 경로의 터미널에서git init만 입력하면 된다. (mac 경로복사: 해당 Finder에서comman+option+c)

git에 올라갈 코드가 대기하는 장소인 stage에 올리는 명령어
git add .에서 .은 전체를 의미하기 때문에 모든 변경 내용을 stage에 올릴 때 사용한다.
git add <파일/디렉토리 경로>변경 내용 중 일부만 올리고 싶을 때 사용한다.

git status 치면 현재 파일들의 상태를 볼 수 있는데, 처음 status에서 파일들은 있지만 흩어져있어 commit 할 준비가 되어있지 않은 것을 알 수 있다.
git commit -m "commit message"
모인 코드들의 현재 상태를 -m 뒤의 commit message는 본인이 알아보기 좋은 메세지로 설정한다. 다른 사람과 협업할 땐 남들이 이해하기 쉬운 제목으로 하는 것이 좋다.
보통은 udacoty의 style guid를 따른다.

⇒ 2,3번은 변경사항 업데이트하려고 할 때마다 해줘야 한다.
지금까지 commit한 기록들을 시간 순으로 출력해주는데, 맨 위에 마지막 commit 내용이 나오고, 각 commit의 SHA-1 체크섬, 저자 이름, 저자 이메일, 날짜, commit 할 때 설정한 메시지를 보여준다.

명령어 git log 통해서 현재 상태 확인해보면 두 장의 사진이 찍힌 것을 알 수 있는데,
처음 상태로 돌아가고 싶으면 initial commit 의 노란색 코드 복사해서 git reset --hard 뒤에 붙여넣기 해주면 된다.
⇒ git commit , add 하지 않고 마지막 수정한 부분만 지우고 싶으면, git reset --hard 치면 마지막 commit 상태로 되돌아간다.
협업하거나 github에 올라와있는 프로젝트를 내 컴퓨터에 복제하기 위해 사용한다.
(이해를 위해 제 github의 Airbnb_NewUserBooking project를 clone 했습니다.)

git clone 위에서 복사한 링크 붙여넣기 해주면 

🚨 깃과 깃허브의 사용자 이름과 이메일이 동일해야 깃허브의 잔디가 심어진다.
github Repositories → New → Create repository
아래 사진에서 파란색 밑줄 친 부분 복사해서 터미널에 붙여넣기하면 끝이다.
👉 👤 뜻 : 깃허브 폴더를 내 로컬과 연동시키겠다 (origin은 remote repository의 이름이며, 다른 이름으로 설정해도 상관없다.)

git push 를 이용해 서버에 연동시킬 수 있다.
++) git remote 의 알아두면 좋은 명령어
1. 연결된 원격 저장소 확인
remote -v

2. 원격 저장소 삭제하기
git remote remove <삭제 할 저장소 이름>
3. 원격 저장소 이름 변경하기
git remote rename <기존 이름> <변경할 이름>을 입력하면 원격 저장소 이름이 변경된다.
반드시 git push를 입력해야, 로컬 저장소에 남겨놓은 변경 이력들이 원격 저장소로 전송이 된다.
git push <저장소명> <브랜치명>
예를 들어, my-feature라는 브랜치에 남겨놓은 코드 변경 이력을 origin라는 원격 저장소에 올리기 위한 git push 명령어는 git push origin master.
git clone을 통해 저장소를 복제를 했다면 원격 저장소명은 일반적으로 origin이며 git remote 명령어를 통해서 저장소명을 알 수 있다. 
++) git push 의 알아두면 좋은 명령어*
1. -u**
git push -u <저장소명> <브랜치명>와 같이 -u 옵션을 사용하면 처음 한 번만 저장소명과 브랜치명을 입력하고 그 이후에는 git push만 입력해주면 된다.
2. push.default
대부분의 경우에는 로컬 저장소와 원격 저장소에서 동일한 브랜치 이름을 사용하기 때문에 push.default 설정을 current로 설정해주면,
$ git config --global push.default current
어느 브랜치에서 작업을 하든 git push만 날리면 원격 저장소에 동일한 브랜치로 변경된 코드가 업로드된다.
3. -f
-f 옵션을 사용하면, 원격 저장소 내의 해당 브랜치의 코드 변경 이력을 로컬 저장소의 코드 변경 이력으로 덮어쓸 수 있다.
$ git push <저장소명> <브랜치명>
🚨 하지만 협업하고 있을 경우 코드 충돌이 발생할 수 있기 때문에 개인 프로젝트인 경우에만 사용하는 것이 좋다.
git pull <저장소명> <브랜치명> 입력하면 서버에서 생긴 변경사항을 포함한 코드를 로컬로 가져올 수 있다
+)git pull vs. git fetch
git fetch는 로컬 Git에게 원격 저장소에서 최신 메타데이터 정보를 확인하라는 명령을 전달한다. 단 fetch는 원격 저장소에 변경사항이 있는지 확인만 하고, 변경된 데이터를 로컬 Git에 실제로 가져오지는 않는다.
반면 git pull은 원격 저장소에서 변경된 메타데이터 정보를 확인할 뿐만 아니라 최신 데이터를 복사하여 로컬 Git에 가져온다.


다음 글은 깃허브로 협업하는 방법을 작성해야겠당!