본문으로 바로가기

Git 설치와 설정

category 소프트웨어/Linux 2019. 2. 6. 20:50
728x90
반응형

1. Git 배포하는 공식 사이트 접속


    http://git-scm.com 이 사이트에 접속합니다.



2. Download 페이지 이동

   

    좌측 하단에 있는 Downloads 링크를 클릭합니다.



3. Linux/Unix 링크 이동


    Linux/Unix 링크를 클릭합니다.



4. git 설치


   Debian/Ubuntu 항목의 설치 명령어 실행합니다.


sudo apt-get install git


아래 그림은 최신 버전이 이미 설치되어 있는 경우입니다.



5. 사용자 이름과 이메일 설정


    사용자 이름과 이메일을 설정해 줍니다. 여기서 입력하는 사용자 이름과 이메일은 로컬 저장소에서 일어나는 커밋에 포함됩니다.


git config --global user.name "hsmaster"
git config --global user.email "sjyong@humanoidsystem.com"




6. 저장소 생성


Git 저장소로 사용할 폴더를 하나 만듭니다.


mkdir git_tutorial



7. Git 저장소 초기화


새롭게 생성한 프로젝트 폴더로 이동하여 Git 저장소를 초기화 합니다.


cd git_tutorial
git init



8. 파이썬 소스 추가


아래와 같이 Hello world를 출력하는 간단한 파이썬 프로그램을 작성합니다. 작성이 완료되면 실행합니다.


gedit hello.py
cat hello.py
python hello.py



9. 저장소 상태 확인


커밋을 수행하기전에 저장소의 상태를 확인하기 위해 아래의 명령을 실행합니다.


git status



10. 파일 기록 추적 설정


작업 파일의 기록을 추적하도록 아래의 명령을 실행합니다.


git add hello.py


11. 커밋


다음 명령을 실행하여 커밋을 합니다.


git commit



12. 브랜치


현재 어떤 브랜치가 있는지 확인하고자 할 경우 아래의 명령을 실행합니다.


git branch


hotfix라는 새로운 브랜치를 생성합니다. 2개의 브랜치가 있는 것을 확인할 수 있습니다. 브랜치 이름 앞에 *라는 글자가 있는데 이것은 지금 작업중인 브랜치를 나타냅니다.


git branch hotfix



13. hotfix 브랜치로 이동


checkout 명령을 실행하여 hotfix 브랜치로 작업공간을 이동 시킵니다.


git checkout hotfix



branch와 checkout을 동시에 실행하고자 할 경우 아래의 명령을 실행합니다.


git checkout -b hotfix


14. hotfix 브랜치에서 hello.py파일 수정


hotfix 브랜치에서 hello.py 소스에 "Tell your world"출력문장을 추가합니다. 그리고 추가된 내용을 확인한 후 실행합니다.

정상적인 동작을 확인합니다.


gedit hello.py

cat hello.py
python hello.py



15. hotfix 브랜치의 커밋 수행


소스 파일을 수정하고 커밋을 실행하고자 git status 명령을 실행하면 아래와 같은 메시지가 출력됩니다. 변경된 내용이 커밋할 준비가 되어 있지 않다는 내용인데 git add 파일추가 명령을 사용하거나 git commit -a 옵션을 실행합니다.


git status git add hello.py git commit

git status





또는


git status
git commit -a



16. master 브랜치와 병합


hotfix 브랜치에서 작업한 내용을 master 브랜치와 합치기 위해 먼저 브랜치 변경 명령을 실행하고, 브랜치 병합 명령을 실행합니다.


git checkout master
git status
ls
cat hello.py
python hello.py



아래의 명령어를 실행하여 브랜치를 병합하고 결과를 확인합니다.


git merge hotfix

ls
cat hello.py
python hello.py



17. 블랜치의 독립성 확인


병합하기 전에 각 브랜치들은 개별적으로 그리고 독립적으로 관리할 수 있습니다. master 브랜치와 hotfix 브랜치의 소스를 각각 수정하고, 서로 독립적으로 수정이 가능한지 여부를 확인합니다.

먼저 아래의 명령을 수행하여 master 브랜치의 소스를 수정하고 확인합니다.


gedit hello.py

python hello.py
git commit

git commit -a



checkout hotfix를 실행하여 hotfix 브랜치로 이동하고, hello.py 파일을 수정하고 커밋을 수행합니다.


git checkout hotfix gedit hello.py cat hello.py git commit -a python hello.py



18. 불필요한 파일 및 폴더 무시


touch 명령어를 이용해서 .gitignore 파일을 만듭니다.


touch .gitignore
ls -al

gedit .gitignore

git add .gitignore git commit -m "added '.gitignore' file"




gitignore 파일을 자동으로 생성해주는 사이트에 접속합니다.


https://www.gitignore.io/


운영체제와 프로그램 언어를 선택합니다. 키워드 단어를 입력하고 해당 항목을 선택합니다.



gedit를 이용하여 생성된 웹페이지의 내용을 복사하여 .gitignore 파일을 작성합니다.



.gitignore 파일을 추가하고 커밋을 수행합니다.



19. 충돌 해결


2개의 브랜치에서 동시에 같은 파일의 같은 곳을 수정할 경우 병합 과정에서 충돌이 발생합니다.

아래의 명령은 master 브랜치로 이동한 후 병합을 수행하기 위한 것입니다. 이 명령들을 수행할 경우 에러가 발생합니다.


git checkout master
git merge hotfix
cat hello.py


소스 파일 내부에 에러가 발생된 시작 위치를 <<<<<<< HEAD로 표시되고 끝 부분을 >>>>>>>hootfix로 표시됩니다.



충돌 부분을 편집하고 수동으로 해결해야 합니다. 아래의 그림처럼 소스 파일을 수정하고 저장합니다.

저장이 완료되면 커밋을 수행하여 수동으로 충돌을 해결합니다.


gedit hello.py

git commit -a -m "conflict resolved"



20. 로그 기록 보기


작업이 이력을 확인할 수 있습니다. 몇 가지 옵션을 사용할 수 있습니다.


git log
git log -p
git log --word-diff
git log --stat
git log --name-only
git log --relative-date
git log --graph








728x90
반응형