안녕하세요.
오늘 정말 추운 날씨네요. 모든분들 건강 조심하시구요. ^^
금일은 Git의 3번째 시간으로 기본 명령어에 대해서 알아보고자 합니다.
그럼 시작해볼까요??
저장소 생성을 위한 Git의 기본 명령어에 대해서 우선 알아보도록 하겠습니다.
1. git init : 저장소 생성
윈도우에서 시작 -> Git -> Git bash를 클릭하여 실행해줍니다.
아래는 실행해서 repository를 초기화하고 생성한 화면을 보여줍니다. 기본적으로 윈도우 환경이나 리눅스 환경이나 git의 사용 명령어는 동일합니다. 그리고 리눅스 명령어에 익숙한 사용자라면 쉽게 따라오실 수 있습니다.
그럼 아래 그림을 보고 하나씩 설명해 나가도록 하죠.
1번의 mkdir gitTest 명령어는 gitTest라는 디렉토리를 만들어주는 명령어 입니다.
디렉토리를 만들어 주고 난뒤 ls 라는 명령어로 확인해보면 gitTest라는 디렉토리가 2번처럼 만들어져 있는 모습을 확인할 수 있습니다.
그러고 난 다음 cd 명령어로 gitTest 디렉토리로 3번과 같이 이동해 주고 난 후 git init 명령어로 저장소를 생성하고 초기화를 시키면
4번과 같이 Git repository가 init되어진것을 확인할 수 있습니다.
그리고 5번과 같이 디렉토리 경로에 아까는 없었던 master라는 표시가 되어 있는데, 저것은 현재 저장소에서 작업중인 브랜치가 master 브랜치라는 표시입니다.
그럼 파일을 한번 저장소에 커밋을 해볼까요??
먼저 저는 저장소에 hellowworld.py라는 프로그램을 만들어 보았습니다. 파이선 프로그램인데,
간단하게 hellow world를 출력해주는 프로그램인데요. 이놈을 커밋을 해보도록하겠습니다.
일단은 git status라는 명령어로 커밋하기 전 저장소의 상태를 확인해보도록 하겠습니다.
위의 그림을 보시면 브랜치 마스터에 아직 커밋되어지지 않은 파일이 helloworld.py라는 파일이 있고, 그놈을 커밋을 할려면 git add명령어를 사용하라고 설명이 나와 있습니다.
그럼 이제 git add라는 명령어를 사용하여 파일을 tracking해보도록 하겠습니다.
명령어는 git add helloworld.py입니다.
git add를 하고 난 다음 git status를 확인하면 Changes to be committed: 라는 설명이 나옵니다.
이제 git commit 명령어로 커밋을 시도합니다.
vi 창이 뜨면 create first helloworld program. 이라고 작성하고 저장한 뒤 나옵니다.
그러면 아래와 같이 커밋이 완료되었고, 어떤 파일이 바뀌었는지 설명이 나옵니다.
기본적으로 Git을 사용할 때는 위와 같이 파일을 추가하고, 수정하고, 커밋하면서 프로젝트를 진행하는데, 기존 프로젝트에서 새로운 기능을 추가하거나 기존기능을 변경해야할 실험적인 상황일때 새로운 branch를 따는 방법에 대해서 알아보도록 하겠습니다.
git branch 명령어를 실행하여 현재 브랜치가 있는지 볼 수 있습니다.
그리고, "git branch 브랜치이름" 명령을 실행하면 '브랜치이름'의 브랜치가 만들어집니다.
git branch another 명령으로 another이라는 브랜치를 생성합니다.
master앞에 * 표시가 있습니다. 이것은 의미는 아직까지 우리가 작업하고 있는 브랜치는 master라는 의미입니다.
another 라는 브랜치에서 작업하기 위해서 git checkout another 명령어를 실행합니다.
helloworld.py라는 파일을 수정하고 다시 컴파일 한 후 실행시킨 화면은 아래와 같습니다.
git status를 해서 확인해보면 변경된 내역이 커밋될 준비가 되어 있지 않았다와 같은 메시지가 나타납니다.
이럴 경우에 git commit -a 명령어를 실행하여 커밋합니다.
vi가 실행되면 added modify helloworld program. 과 같은 메시지를 입력하고 저장합니다.
그러면 another 브랜치에 추가되었다는 메시지를 볼 수 있습니다. 아래와 같이...
그럼 이제 another 브랜치에서 작업한 내용을 master 브랜치와 병합해보도록 하겠습니다.
먼저 브랜치로 변경하기 위한 명령을 실행합니다.
git checkout master를 실행하고, git status, ls, cat helloworld.py, python helloworld.py를 차례대로 실행합니다.
아래는 실행한 결과를 보여줍니다.
이제 확인을 마쳤으니 브랜치를 병합해보도록 하죠.
git merge another 명령을 통해서 현재 작업중인 브랜치에 another 브랜치를 가져와서 병합을 합니다.
아래 그림을 보면 helloworld.py파일에 1행이 추가되었다는 메시지가 나옵니다.
정상적으로 병합되었는지 되었는지 helloworld.py를 실행하여 확인합니다.
그다음로는, 불필요한 파일 및 폴더 무시할 수 있는 명령어를 알아보겠습니다.
touch .gitignore, ls, ls -al 명령어를 차례로 실행해봅니다. touch .gitignore 명령은 아무것도 없는 빈 파일을 하나 만듭니다.
.gitignore 파일안에 내용을 채워야하는데, https://www.gitignore.io/ 홈페이지에가서 아래와 같이 하면 자동으로 .gitignore 파일을 운영체제와 개발툴에 맞게끔 생성해주는 사이트입니다.
일단은 실습을 위해 아래와 같이 생성된 파일을 빈파일로 생성한 .gitignore 파일에 복사 후 붙여넣기합니다.
파일을 긁어서 윈도우 에디트 프로그램으로 붙여넣기가 더 편합니다. vi에 익숙하지 않는 분들은 vi에서 작업하기가 상당히 까다로우므로..^^;;;;
git add .gitigonre
git commit -m "added '.gitignore' file"
위 두명령어를 사용하면 파이썬 프로젝트를 할때 불필요한 파일이 Git 저장소에 추가되는 것을 방지할 수 있습니다.
프로젝트를 진행하다보면 충돌(conflict)난 상황이 생길 수 있는데, "CONFLICT (content) : Merge.... 블라블라블라... " 와 같이 충돌이 발생했으며
결과와 함께 무엇을 확인해야할지 알려주는 상황이 발생합니다.
충돌이 난 해당 파일을 열어보면 <<<<<HEAD >>>>> 등으로 충돌난 부분을 표시해주는데, Git는 해당행이 어떤 의미인지 알 수 없기 때문에
사용자가 충돌사항을 수동으로 해결하게끔 위임합니다.
사용자는 수동으로 충돌 사항을 해결한 후 아래와 같은 명령어를 실행하여 충돌 상황을 해결해야 합니다.
git commit -a -m "conflict resolved"
마지막으로 git log에 대해서 알아보겠습니다.
git log --graph 명령어를 실행해봅니다. 기본적으로 아주 많이 사용하는 로그관련 명령어입니다.
체크섬값, 커밋한 사용자, 커밋 시각, 커밋 메시지등을 확인 할 수 있습니다. 맨 왼쪽의 녹색과 빨간색 세로 점선이 있는데, 이는 브랜치의 분기내역입니다.
git log --stat를 실행하면 아래와 같은 로그도 확인할 수 있습니다.
오늘은 여기까지 알아보도록 하겠습니다.
위의 명령어들은 Git의 아주 기본적인 명령어입니다. 그러므로 반드시 숙지해놓아야 할 것입니다. ㅎ
다음 시간에는 GitHub에 대해서 알아보는 시간을 가져보도록 하겠습니다.
그럼 오늘 추운날씨가 정말 고생 많으셨습니다.
이글이 도움이 되셨다면 공감버튼을 눌러주시길 부탁드립니다.
공감버튼은 로그인하지 않으셔도 누르실수 있습니다. ^^*
그럼 다음시간에 뵈요...^^;;;
GitHub와 Git 연동 ( git clone, git remote ) (0) | 2019.01.01 |
---|---|
GitHub 원격저장소 생성 (0) | 2018.12.30 |
GitHub 가입하기 (0) | 2018.12.29 |
Git 설치 ( 윈도우 환경 ) (0) | 2018.12.22 |
Git에 대해 알아보자. (0) | 2018.12.22 |
댓글 영역