git init
버전 관리를 위해 내 정보를 등록해야 함
git config --global user.email "github 가입 이메일"
git config --global user.name "github 가입 username"
그 다음
git add
git commit -m "커밋 메시지"
git push
개발을 하다가 이전 커밋부터 다시 개발하고 싶다면 이전 커밋으로 돌아가면 된다.
git log
위의 명령어를 통해 지금까지 만든 커밋과 돌아갈 커밋 id를 확인하고
git checkout 커밋id
위 명령어를 사용하면 원하는 커밋으로 돌아갈 수 있음
원격저장소에 올리고 싶은 작업물이 있는 폴더로 이동한 뒤,
git remote add origin 내 원격저장소 주소
명령어를 통해 내 로컬저장소에 원격저장소 주소를 알려주기
위의 명령어를 수행한 후에는 아래처럼 원격저장소에 push하면 됨
git add git commit -m "~~~" git push origin master
원격저장소의 코드와 버전 전체를 내 컴퓨터로 내려받는 것을 클론(clone)이라고 한다. 클론을 하면 최신 버전뿐만 아니라 이전 버전들과 원격저장소 주소 등이 내 로컬저장소에 저장된다.
git clone 명령어 뒤에 원격저장소 주소를 적고, 한 칸 띄고 마침표를 찍어준다. 마침표는 현재 폴더에 받으라는 뜻이다. 점을 찍지 않으면 현재 폴더 안에 [iTshirt] 폴더가 생긴다.
git clone https://GitHub.com/Cat-Hanbit/iTshirt.git .
git pull origin master
- 현업에서도 CLI 형태로 조작하기 힘든 경우에는 GUI 프로그램을 많이 사용
- 본인 개발에 편한 것으로 많이 선택
- 보통 여러 사람이 같이 repository를 사용하게 되면, cherry-pick 해서 다른 사람의 브랜치 내용 일부를 가져와야 한다던지 다양한 문제를 겪을 수 있는데, 이를 CLI로 하면 불편함이 많아서 GUI 프로그램을 쓰는 게 더 편리하고 일도 금방 끝남
로컬저장소 목록(Local)
- 컴퓨터에 저장되어 있는 Git 로컬저장소 목록을 보여준다.
- Git으로 관리되는 모든 저장소가 자동으로 표시되는 것은 아니며, Add 탭에서 소스트리에 추가할 수 있다.
원격저장소 목록(Remote)
- 원격저장소 계정에 연결되어 있는 모든 원격저장소를 볼 수 있다.
- GitHub 계정을 추가하면, GitHub에서 등록한 원격저장소 목록이 뜬다.
원격저장소 클론(clone)
- 원격 서버에 올라와 있는 Git 저장소를 내 로컬 컴퓨터에 다운로드 및 연동할 수 있다.
로컬저장소 추가(Add)
- 내 컴퓨터에 만들어져 있는 로컬저장소를 소스트리에서 관리할 수 있도록 추가한다.
로컬저장소 생성(Create)
- 내 컴퓨터에 있는 일반 폴더를 Git으로 버전 관리할 수 있도록 로컬 저장소를 생성한다. 모든 폴더는 자동으로 Git으로 버전 관리되는 게 아니고 이렇게 해당 폴더 내에 로컬저장소를 생성해야 그때부터 버전관리를 할 수 있다.
새 탭(+)
- 새로운 탭을 열어 다른 저장소를 관리할 수 있다.
로컬에서 파일을 만들고 수정한 뒤 소스트리
- 아까와 달리 그래프 최상단에 '커밋하지 않은 변경사항'이 생김
- 이 텍스트를 선택하면 소스트리 하단의 [스테이지에 올라가지 않은 파일]에 방금 만든 파일이 보이는 걸 확인할 수 있다.
add
- +버튼을 누르면 add가 됨
- +버튼을 누르면(add를 하면) 파일이 [스테이지에 올라간 파일]로 올라간다.
commit
- 아래쪽에 커밋 메시지를 작성하고 커밋 버튼 누르기
push
- 최신 커밋에는 main 꼬리표가, 하나 이전 버전에는 [origin/main]이라는 꼬리표가 붙어있다. 이는 내 컴퓨터의 로컬저장소의 버전은 최신인데 원격저장소의 버전은 하나 이전의 버전인 상태라는 뜻이다.
- 정리하자면 아무것도 붙지 않은 [master]는 내 컴퓨터 로컬저장소의 버전을, 앞에 origin이 붙은 [origin/master]는 GitHub 원격저장소의 버전을 가리키는 것이다.
- 소스트리 상단의 Push 버튼을 클릭하고, Push 하면 된다.
- 이 명령은 현재 줄기인 main의 모든 새로운 커밋을 원격저장소에 올리겠다는 뜻이다.(git push origin main과 동일)