코드짜는 노인네

[Git Bash] 깃베쉬 사용을 위한 기본설정 & 명령어 본문

Git

[Git Bash] 깃베쉬 사용을 위한 기본설정 & 명령어

ikohong 2022. 8. 22. 04:18
728x90
반응형

[Git Bash] 깃베쉬 사용을 위한 기본설정 & 명령어


협업하는곳에서 대부분 사용하는 툴이 'git'입니다. 개발자가 되기 위해서는 'git'을 어느정도는 다룰줄 알고 있으면 좋습니다. 이번 포스트에서 'git'을 다루는 다양한 프로그램중 명령어로만 동작을 하는 'Git Bash'의 기본명령어에 대해서 알아보겠습니다.

▶ Git Bash 사용자, 이메일 등록 (최초 1회만 실행)
// git commit에 사용될 사용자이름
git config --global user.name "your_name"
 
// git commit에 사용될 이메일
git config --global user.email "your_email@example.com"
 
// 설정한 내용 확인
git config --list

'Git Bash'를 처음 설치하게 되면, 깃 커밋을 할 때 필요로하는 사용자이름(username)과 이메일(email)이 필요합니다. 둘 중 하나라도 없으면 다음과 같이 에러가 발생하게 됩니다.

협업 프로그램이기 때문에, 누가 코드를 업로드했는지 확인이 필요로 하기에, 사용자이름과 이메일 둘 다 등록을 해줍니다.

 

만일 사용자 이름 혹은 이메일을 잘못입력하셨다면?
// 사용자 이름 삭제
git config --unset --global user.name

// 이메일 삭제
git config --unset --global user.email

// 등록된 사용자가 여러개일 경우
git config --unset-all --global user.name
▶ 로컬저장소 지정 - git init
// 로컬저장소에 있는 프로젝트 위치로 이동
cd 로컬경로

github에 올릴 프로젝트 경로를 지정해줘야합니다. 로컬경로를 확인후, 'Git Bash'에 해당 경로를 지정해줘야하는데요. Window 기준 '파일탐색기'에서 'Github'에 업로드를 할 프로젝트로 들어가서, 상단에 경로를 복사(Ctrl + C) 해주세요.

// shift + insert를 하면 역슬레쉬로 되어있는 경로가 붙여넣어집니다.
$ cd D:\Test_git

// 역슬래쉬로 되어있으면, 간혹 경로를 못찾는데, 이럴경우 슬래쉬로 변경해줍니다.
$ cd D:/Test_git

'Git Bash'에서는 'Ctrl + V'로 해도 복사한 경로를 붙여넣을수가 없습니다. 단축키 'Shift + insert'키를 눌러주면 복사한 경로를 붙여넣을수가 있는데요. 붙여넣고 보면, 경로 사이사이에 역슬래쉬가 입력되어있는것을 확인할 수 있습니다.  'Git Bash'에서 일부는 경로가 인식이 안되는 경우가 있습니다. (저 같은 경우 바탕화면에 있는 파일에 접근을 할려고 하면, 경로를 못찾는 현상이 있었습니다.) 이럴경우에는 역슬레쉬를 슬래쉬로 바꾸고 접근을 하면, 원하는 경로에 접근할 수 있습니다.

경로 이동이 완료되면 위의 사진과 같이 경로가 지정된 모습을 볼 수 있습니다.

// (master) 브랜치로 설정 (로컬저장소로 설정)
git init
 
// init 취소 명령어 (master 브랜치 삭제)
rm -r .git

로컬저장소에 접근을 했다면, 해당 저장소를 master 브랜치로 설정해야됩니다. 쉽게 생각하면 Github와 연동을 하기 위한 작업이라 일단 생각하죠.

'git init'를 입력하면, 경로 오른쪽을 보면 (master)라고 글자가 뜨게 됩니다. 이 글자를 확인되면 설정이 완료된것입니다. 만일 해당 저장소에 master 브랜치를 삭제하고 싶다면, 'rm -r .git'를 입력하시면 됩니다.

숨겨진 항목에 '.git'파일이 존재한다.

▶ 상태 확인
// 해당 경로의 현재 상태를 확인
$ git status

'git init' 명령어를 이용해 설정을 완료하셨다면, 'git status'명령어를 이용해 해당 저장소의 현재 상태를 확인할 수 있습니다. 단, 해당 경로에 '.git'파일이 없을 경우 'git status'명령어를 입력하면, '.git'파일이 없다고 안내를 해줍니다.

상태를 보면, 현재 경로에 어떤 브랜치로 되어있는지와, 코멘트 작성여부, 파일을 'Github'에 올릴 준비영역(Staging Area)에 있는지 여부를 확인할 수 있습니다.

▶ 파일 준비하기 (git add)
// 특정 파일만 추가
$ git add 파일명
 
// 해당 경로의 모든 하위 파일을 추가 (add 띄우고 점 추가)
$ git add .

// Staging Area에 있는 파일 삭제 (특정 파일 삭제 / 전부 삭제 [--cached 띄우고 점 추가])
$ git rm --cached a.html
$ git rm -r --cached .

인제 파일을 'Github'에 올리기 위한 준비를 시작해야됩니다. 일단 파일을 '준비영역'에 옮겨놔야하는데요. 특정 파일만 추가를 하거나, 하니면 해당 경로의 하위폴더를 모두 포함 시킬수 있습니다. 'git add'를 통해 파일을 추가했다가 준비영역에서 삭제하길 원하면 위의 코드중 마지막 명령어를 입력하면 됩니다.

git add 후 git status를 입력해보면 새로운 파일이 추가된 모습을 볼 수 있다.

▶ 커밋 (commit) 작성
// vi 에디터에서 커밋 메시지 작성
$ git commit
 
// 간단한 커밋 메시지 작성 -- [초보자용 추천]
$ git commit -m "커밋 메시지"
 
// Staging Area에 들어간 파일만 커밋 메시지 작성 (워킹 디렉터리에는 적용 안됨)
$ git commit -a -m "커밋 메시지"

// commit 수정하기 (vi 에디터 접근)
$ git commit --amend

파일은 준비가 되었으며, 인제 업로드를 하면 되는데, 그 전에 하나 더 작성을 해야됩니다. 파일을 업로드할때 메세지를 남겨줘야하는데요. 협업을 할 시에 업데이트가 되었을때 무엇이 업데이트 되었는지를 작성하거나, 기간 등 목적에 맞게 작성을 해주시면 됩니다. 'Git Bash'를 처음 다루시는 분이라면, 'git commit -m "메세지"'를 작성하는걸 추천합니다.

참고 : git commit 명령어를 입력했을 경우

리눅스를 다뤄보신분이라면, 익숙한 화면일껍니다. 'Vi' 편집기 모드로 접근을 하게되는데요. 편집기를 처음 다뤄보시는분들이라면, '이게 뭐지?'라 생각하실수 있습니다. 일단 지금은 깊이 알지는 말고, 간단하게 알아보겠습니다.

명령어 (단축키) 설명
i 'insert'의 약자로, 맨 아래줄에 아무것도 적혀있지 않는 상태에서 i를 입력하면, '-- INSERT --'라는 줄이 나오면서, 글자를 편집할 수 있습니다.
: (콜론) :wq
> 맨 아래줄에 아무것도 적혀있지 않은 상태에서 :' (콜론)' 단축키를 입력하면 맨 아래줄에 콜론이 입력되어져있습니다. 이때 'wq'를 추가로 입력한 다음 엔터를 치면, 편집했던 글이 저장이 되면서 리눅스 명령창으로 돌아가게됩니다.
> 맨 아래줄에 아무것도 적혀있지 않은 상태에서 :' (콜론)' 단축키를 입력하면 맨 아래줄에 콜론이 입력되어져있습니다. 이때 'q'를 추가로 입력한 다음 엔터를 치면, 편집했던 글이 저장되지 않고 리눅스 명령창으로 돌아가게됩니다.
▶ 내 Github 저장소와 연결
// Github 원격저장소와 연결
$ git remote add origin [자신의 Github 원격저장소 주소]
 
// 연결된 원격저장소 확인
$ git remote -v

인제 'Git Bash'와 'Github'를 연결해줘야합니다. 연결을 하기 위해서는 'Github'의 주소를 알아야되는데요.

'Github'에 들어가서 원하는 저장소에 들어가면 오른쪽에 'Code'버튼이 보입니다. 여길 클릭하면 'HTTPS'밑을 보면 저장소에 대한 주소가 보입니다. 이 주소 오른쪽 버튼을 눌러주면 주소가 복사됩니다. 그리고 난 다음, 위의 명령어를 입력한 다음 주소를 입력할때 'shift + insert'를 누르면 주소가 붙여넣어집니다.

▶ Github 저장소에 파일을 업로드
// 원격저장소에 저장
git push -u origin master
 
// 에러 - ! [rejected] master -> master (fetch first)
// 이미 변경된 파일이 원격저장소에 있을경우 발생
git pull origin master 
 
// 에러 - ! [rejected] master -> master (non-fast-forward)
git push origin +master

 

728x90
반응형
Comments