본문 바로가기
→ My IT News

Git / GitHub 명령어 정리

by DigitalJobs 2022. 12. 16.

Git / GitHub 명령어 정리

 

개인적으로 Git명령어를 처음 접했을 때 공부하기 위해 정리해둔 내용이 있어서 공유해보려 합니다. 먼저 git과 GitHub의 개념적인 차이부터 말씀드리겠습니다.

git은 로컬 컴퓨터에서 파일을 작업하고 변경된 내용을 병합하거나 버전을 관리할 수 있도록 하는 명령어로 구성되어있는 버전 관리시스템입니다.

그렇다면, GitHub는 무엇일까요?
기존 git방식에서 Hub라는 말이 추가된 만큼, 로컬이 아닌 분산 환경에서 작업하고 변경된 내용을 관리할 수 있게 도와주는 개념으로 이를 클라우드 방식으로 제공해 주는 서비스가 GitHub이라고 보시면 되실 듯합니다.

git & GitHub 아이콘

이번 포스팅에서는 git을 설치하고 이후 로컬에서 git명령어를 처리하여 버전 관리를 할 수 있는 명령어와 Gighub과의 연동까지 작성해보겠습니다. 먼저 설치를 하시려면 아래의 링크로 가셔서 다운로드하신 다음 설치하셔야 합니다.

↘↘↘↘↘git 공식 홈페이지 ↘↘↘↘↘

 

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

git설치 과정은 구글링으로 검색해 보시길 바랍니다. 본인의 컴퓨터에 제대로 설치가 되었다면 아래와 같은 아이콘이 생성된 것을 확인할 수 있습니다.

 

 

 

git bash 이미지 아이콘 생성

아이콘을 더블클릭으로 실행하신 다음, 사용자 이름과 이메일로 본인 등록을 하시길 바랍니다.

git config --global user.name "사용자 이름"
git config --global user.email "이메일@abc.com"

이제 아래의 명령어들로 명령어를 직접 연습해 보시길 바랍니다.

 

1. Git 명령어

 

저장소(폴더)의 생성 : git init
>>폴더 생성과 유사한 개념으로 지금은 이해하시면 됩니다.

만든 저장소(폴더)에 파일 추가 : git add 파일명(git_command.txt)
>>폴더에 추가되긴 하지만, 빨간색으로 표시되며 아직 git에 반영되지 않은 상태를 의미

저장소(폴더)에 반영 : git commit
>>반영하는 파일이 초록색으로 변경되며 git에 반영됨
>>commit 하면서 메시지를 추가하기 위해 git commit -m "message"

git상황을 확인 : git status

※ 마지막 리눅스의 vim 에디터로 표시되며
i -> 파일명(git_command.txt) -> ESC -> : -> wq

이렇게 저장이 가능합니다.

기존 파일을 변경 후 저장할 겨우, commit단계 조심
git commit -m "update git_command.txt"
>>"update git_command.txt"은 업데이트 명을 지정해준 것입니다..

수정한 내용을 보려면  : git log
>>위쪽이 가장 최신의 내용으로 표시된다.
log를 좀 더 시작적으로 확인하려면 gitk라는 명령어로 가능하다.

현재 저장소에 어떤 branch가 존재하는지 확인 : git branch
>>branch는 현재 작업 상태에서 복사하여 새로운 분할된 저장소를 만들어주는 명령어
>>처음에는 ★master만 보이며 ★의 의미는 현재 선택이 되어있는 branch를 의미함

새로운 branch를 생성 : git branch 브렌치명
>> git branch test1 (아무런 반응없음)

기본 branch에서 새로운 branch로 선택권을 이동
git checkout test1  <-> 반대로 master로 돌아가기 위해 : git checkout master

///현재 이 파일의 작업 시점은 test1 branch에 존재하는 파일입니다.///
test1이라는 branch에서 변경한 내용을 병합하기위해 master branch로 이동하여, 
git merge test1
>>test1에서 변경한 내용들이 master branch에 병합됩니다.
>>병합된 branch는 더 이상 필요가 없기에, git branch -d test1(d옵션은 삭제)

test1의 branch의 내용을 모두 수정한 다음 master branch에서 병합하기 전에 master branch의 내용이 수정된다면, commit에는 같은 파일의 수정 내용이 두 개가 존재하여 충돌이 발생
both modified git_command.txt라는 메시지가 뜹니다.
이럴 때는 파일을 열어서 양쪽 파일들의 충돌이 발생하지 않도록 수정하고, add 한 후 다시 한번 commit 합니다.


2. Git명령어 GitHub연계

 

기존의 Git명령어와 함께 GitHub을 활용하여 원격 저장소로 활용해봅니다.


Github에 로그인하고 repository를 생성하거나 이미 생성된 repository의 오른쪽 code에서 주소를 복사해서 내 컴퓨터의 콘솔에서 원격 저장소(repository)를 생성할 경로로 이동하여 clone라는 명령어로 Github에서 만든 원격 저장소를 복사해 옵니다.


※ 저는 기존 local에서 만들어놓은 저장소가 있다면, 그 저장소(폴더) 안으로 콘솔에서 작업해봅니다.
완료되면 github에서 만들었던 repository가 폴더 형태로 복사된 것을 확인할 수 있습니다.

원격과 로컬 등 여러 파일들이 수정된 상태에서 add명령어를 사용할 때는 
git add *
>>*를 사용하여 여러 개 파일을 동시에 add 할 수 있다.

git commit -m "두 개의 내용이 commi 되었습니다."

 

여기까지가 local에서만 commit 되었고, github에 push가 된 상태가 아니기에 이제 github에 추가해야 됩니다.
git push
>>이때 재인증을 요구할 수도 있다.

push가 되었다면 github에 가서 작업 중인 repository에 가서 새로고침으로 확인이 가능하다.

원격과 관련된 명령어
clone : 원격 저장소의 내용을 복제합니다..
push : 원격 저장소로 보냅니다.
pull : 원격 저장소에 있는 내용을 가져옵니다.
fetch : 원격 저장소에서 변경된 내용을 가져옵니다.


2. 계정 간의 작업


A : host개념
B : guest개념

B에서 A계정의 repository를 가져오려면, B계정으로 로그인하여 A의 계정을 찾아간다.
가져오고자 하는 repository에서 오른쪽 상단의 fork를 눌러서, 자신의 계정인 B를 선택해준다.
이제 B의 계정에 A의 repository가 복사된 것을 확인할 수 있고, clone 주소를 복사해서
local에서 복사해와서 작업을 시작한다.

local에서 add 하고, commit 하고, push 까지 하면 B의 repository에 반영되고
B의 계정 repository에서 "create pull request"를 선택하여 
white에 추가되는 내용을 적어두고 create pull request를 눌러서 A에게 보낸다.

A의 입장에서는 아직 반영되지 않은 상태이며, 상단의 pull request가 있다는 것을 확인 후
클릭하고 확인 후에 "merage pull request"버튼으로 승인해준다.
B의 계정에는 pull request closed라는 메시지와 함께 정상 반영됨






댓글