여타 많은 블로그나 공식 홈페이지에서는 git을 설정하고 github 레포지토리를 만드는 방법을 많이 다루고 있다.
$ mkdir {디렉토리이름}
* { } 는 포함X
$ cd {디렉토리이름}
shell command
mkdir
: 디렉토리를 생성
cd
: 디렉토리로 이동
$git init
해당 명령어를 입력하면 현재 디렉토리에 .git 디렉토리가 생성된다.
($ ls -a
명령어로 .git 파일을 확인해보자)
.git 은 저장소에 필요한 뼈대 파일이 들어 있다.
$ git remote add origin {git주소/레포지토리이름.git}
⬇️ github에서 레포지토리를 생성하면 나타나는 화면. .git
주소를 복사하기
명령어를 풀어서 설명해보면
"앞으로 원격 저장소를 origin이라는 별칭(alias)를 가진 {.git} 주소(원격 저장소)로 지정할께" 라는 의미로 해석할 수 있다.
origin이라고 붙이는 이유는 git에서 원격 저장소의 별칭으로 default 값으로 지정해뒀기 때문이다. (clone으로 원격 저장소를 불러오면 origin임을 알 수 있다.)
$ touch README.md
README.md 파일 생성은 자유이나, 프로젝트를 설명하는 문서와도 같기 때문에 필요가 아닌 필수로 넣는 것이 국룰이라고 한다.
shell command
touch
: 파일 생성(텍스트로 형성된 파일 e.g. .txt, .java, .py, .c)
$ git add {파일 이름}
$git commit
or$git commit -m "docs: Create README.md"
add
$git add .java
같이 확장자 이용commit
-m
를 붙이는 방법은 추천하지 않는다. 만약 마지막에 큰따옴표를 깜빡하고 넣지 못한다면 enter를 눌렀을 경우에 commit 메시지가 계속 입력된다.
$ git branch -M main
git을 처음 초기화하면 master branch로 설정되어있는 것을 확인하게 되는데,
git에서 평등 운동의 일환으로 master-slave 에서 이 master 단어 사용을 지양하자는 취지로 main으로 변경하기를 권고한다.
그래서 위의 명령어가 바로 현재 branch의 이름을 변경하는 커맨드이다.
$git push -u origin main
명령어를 풀어서 설명해보면
"origin이라는 별명을 가진 원격 저장소한테 파일과 메시지 내용을 보낼꺼야(push). 근데 아직 원격 저장소에는 main이라는 branch가 없으니까 로컬 저장소 main branch랑 원격 저장소 main branch랑 같게 만든(-u) 후에 보낼께." 라는 의미로 해석할 수 있다.
push
: 로컬 저장소에서 원격 저장소로 전송하는 단계이다.
$ git clone {git주소/레포지토리이름.git}
⬇️ Code 버튼 클릭 후 HTTPS탭에 있는 .git
주소 복사
clone
: github에 새로운 레포지토리를 생성(=원격 저장소)해서 작업 공간(디렉토리)으로 불러오는 명령어다.
위의 명령어를 입력하면 레포지토리 이름과 똑같은 디렉토리가 생성된다.
(Bottom-up과 동일)
$ git add {파일이름}
$git commit
or$git commit -m "docs: Create README.md"
add
$git add .java
같이 확장자 이용commit
-m
를 붙이는 방법은 추천하지 않는다. 만약 마지막에 큰따옴표를 깜빡하고 넣지 못한다면 enter를 눌렀을 경우에 commit 메시지가 계속 입력된다.
$git push
or $git push origin main
push
: 로컬 저장소에서 원격 저장소로 전송하는 단계이다.
Bottom up과 달리 clone
명령어를 통해 origin 별칭이 default로 붙고 main 또한 원격저장소에서 가져왔기 때문에 -u
를 사용하지 않는다.
(원격 저장소의 main branch == 로컬 저장소의 main branch 형성이 돼있음)
$ git status
: git의 현재 상태 확인
$ git rm -rf .git
: git init으로 잘못 초기화했을 경우에 .git 파일 지우기
$ git remote
: 원격 저장소의 별칭(alias) 확인