
Git Bash 기준으로 Git CLI 기본 명령어를 배워 정리하려고 한다.
Command Line Interface 의 줄임말로 Window, GUI 환경과는 다르게 마우스 없이도 사용가능하게끔 만들었다.
Git Bash에서는 shell 명령어를 활용해 OS와 대화할 수 있다.
(Window는 터미널 창이 같은 역할을 한다. + linux 또한 사용 가능하게끔 해뒀다. )
# 설치된 깃 버전 확인
$ git --version

# apt-get으로 깃 설치 가능(ubuntu linux 환경일 때)
$ sudo apt-get install git-core
# 깃 초기 설정 ( '' 안에 username, useremail을 적어주면 된다 )
$ git config --global user.name '{username}'
$ git config --global user.email '{user.email}'
# CRLF 문제 해결
$ git config --global core.autocrlf input
# 깃 설정 확인
$ cat ~/.gitconfig
진행하면서 CRLF 문제 해결하는 것을 하지 않아서 중간에 했다.
$ mkdir -p c:/gitwork/testproject
윈도우 환경에서 실제로 만들어졌음을 알 수 있다.

# 생성한 디렉토리로 이동
$ cd c:/gitwork/testproject
# 현재 git의 디폴트 브랜치 확인
$ git config --get init.defaultBranch
# 기본 브랜치 main으로 변경
$ git config --global init.defaultBranch main
$ git config --get init.defaultBranch
#.git 디렉토리 생성 및 확인
$ git init
$ ls -al


# 파일 추가하기
$ touch test.txt
# 코드 작성 (수정 후 :wq) -> test.txt 에는 "Hello world" 라는 문구를 적어줬다.
$ vim test.txt


아직은 vim 단축키에 관해 삽입 (i키), 저장 (w키), 나가기(q키) 등 몇 가지 아는 것이 없어서 방향키 (HJKL키)와 같이 몇 가지 단축키에 관해서도 다뤄봐야겠다는 생각을 했다.
$ git add test.txt
$ git commit -m 'first commit'
$ git commit -m 'first commit
>
> 커밋 내용'
제목과 커밋 내용을 작성하는 방법은 '(콜론)을 닫지 않고 Enter를 눌러서 다음 줄로 넘어가면 된다.
# 변경 이력 확인
$ git log
# 변경 이력과 함께 차이점 표시(끌 때는 q)
$ git log -p

여기서 test.txt를 약간 수정해보고 git status를 해보았다.

이 때 diff를 활용하면?
$ git diff [7자리 커밋 오브젝트명]

| 명령어 | 내용 |
|---|---|
| git init | 레포지토리 생성 |
| git add | commit 대상으로 등록 |
| git commit | commit 수행 |
| git status | 작업 트리의 상태 출력 |
| git diff | 차이 표시 |
| git log | 이력 표시 |
현재는 first commit 이후에 한 가지 커밋을 더 한 상태이다.

$ git revert [취소하고 싶은 커밋의 오브젝트명]
$ git branch
$ git branch [브랜치명]
# 생성된 브랜치 확인
$ git branch
$ git checkout [전환할 브랜치]
# 브랜치 전환된 것 확인
$ git branch
$ git checkout main
$ git merge [merge할 브랜치명]
# merge 메시지 뜨면 작성할 것
내가 현재 main 에서 feature1 branch를 merge 하고 싶다면?
main 을 체크아웃한 뒤
$ git merge feature1
이 때는 내가 삭제할 브렌치에서 삭제하는 것이 아닌, 다른 브렌치로 체크아웃으로 옮겨간 뒤에 삭제할 수 있다.
$ git branch -d [브랜치명]
$ mkdir -p c:/gitwork/testproject2
$ cd c:/gitwork/testproject2
$ git clone [복제할 레포지토리]
# 복제 된 브랜치 확인

$ git branch -M main
$ git remote add origin [원격지 https url 주소]
$ git push -u origin main

board.txt 파일을 만들어서 올려보았다.