1. GitHub 사이트 접속
2. 회원 가입
새롭게 회원을 가입할 경우 오른쪽 상단에 Sign up 버튼을 클릭하고 사용자 아이디, 이메일 주소, 비밀번호를 입력합니다. 무료나 유료로 사용이 가능하며 무료 사용할 경우 저장소가 모두 공개됩니다.
이미 가입을 완료한 경우 Sign In 버튼을 클릭하여 이메일과 비번을 입력하여 접속합니다.
3. 새로운 저장소 생성
Start a project 버튼을 클릭하여 새로운 원격 저장소를 생성합니다.
OWner : 사용자 아이디가 표시됩니다, 협업할 경우 다른 사용자의 아이디를 지정할 수 있습니다.
Repository name : 새롭게 생성할 원격 저장소의 이름을 입력합니다.
Description : 생성할 원격 저장소를 설명하는 내용을 작성합니다.
Public/Private : 원격 저장소의 공개 여부를 선택합니다.
Initialize this repository with a README : 기본적으로 체크를 하시기 바랍니다. 자동으로 README .md 파일을 생성해 줍니다.
Add .gitignore : 원격 저장소에 제외할 파일들의 목록을 만듭니다.
Add a license : 프로젝트의 라이센스를 결정합니다.
입력을 완료한 후 Create repository 버튼을 클릭해서 새로운 원격 저장소를 생성합니다.
위의 그림처럼 저장소가 생성 되었습니다.
4. Fork
포크는 다른 사람의 계정에서 내 계정으로 원격 저장소를 복사하는 것을 의미합니다.
먼저 좌측 상단에 있는 로고 아이콘을 클릭하여 메인 페이지로 이동합니다. 여기서 검색 바에 "jQuery"입력하고 엔터를 눌러 검색을 수행합니다.
검색 결과 창에서 맨 위의 "jquery/jquery"의 링크를 클릭하여 선택합니다.
jQuery의 내용을 확인할 수 있습니다. 오른쪽 상단에 Fork 버튼을 클릭합니다.
Fork를 진행하면서 진행 창이 출력됩니다. 정말 포크를 꽂은 그림이 출력됩니다.
Fork가 완료되면 내 계정으로 jQuery의 복사본 저장소가 옮겨진 것을 확인할 수 있습니다.
이 처럼공개된 저장소를 필요에 따라 내 계정으로 복사해서 사용할 수 있습니다.
5. clone : 원격 저장소 내용을 로컬로 복사하기
원격 저장소에 내가 만들어 놓은 저장소나 다른 사람이 만든 저장소를 clone 명령을 사용하여 내 컴퓨터에 가져올 수 있습니다.
가져오고자 하는 저장소에 접속하여 오른쪽에 "clone or download" 버튼을 클릭하면 Clone with HTTPS라는 저장소의 주소가 출력됩니다. 오른쪽 복사 버튼을 클릭하여 주소를 복사합니다.
Download_GitHub 만들고 아래의 명령을 실행하여 원격 저장소를 복사합니다.
mkdir Download_GitHub cd Download_GitHub git clone https://github.com/hsmaster/i2cdevlib.git cd i2cdevlib/ git status
6. remote : 로컬 저장소와 원격 저장소 연결
먼저 빈 원격 저장소를 생성합니다.
빈 원격 저장소를 생성하고 로컬 저장소와 연결합니다. 아래의 명령을 순서대로 수행하여 원격저장소와 연결합니다.
git init ls -al git commit -m "First commit" git remote add origin https://github.com/hsmaster/DiffWheelRobotControl.git git remote -v
7. push : 로컬 작업 내역을 원격 저장소에 올리기
push 명령어를 이용하여 자신이 작업한 결과물을 원격 저장소에 업로드 합니다.
git push -u origin master
아래 그림은 원격 저장소에 올리기가 완료된 상태입니다.
로컬 저장소에서 README.md 파일을 생성하고 원격 저장소에 올리는 명령을 수행합니다.
cat >> README.md Difference wheel mobile robot control of zetabank ^c git add README.md git commit -m "remote repository add a README.md" git push origin master
올리기가 완료된 상태입니다.
다른 로컬 저장소도 위와 동일한 절차대로 작업을 수행합니다.
8. 원격 저장소와 로컬 저장소의 차이 수정
작업자가 원격 저장소의 내용을 수정하고 또한 로컬의 저장소 내용도 수정한 후 병합을 시도할 경우 정상적인 병합이 이루어지지 않습니다. 이 경우 pull이나 fetch 명령을 사용할 수 있습니다. 일반적으로 fetch 명령을 사용하여 원격 저장소의 커밋 정보를 로컬 저장소에 가져와 수동으로 수정합니다.
먼저 원격 저장소의 hello.py 내용을 수정하고 커밋 메세지를 입력 한 후 Commit changes 버튼을 클릭합니다.
다음 단계로 로컬 저장소의 hello.py 파일을 수정합니다.
커밋을 수행하고 git 상태를 확인합니다.
로컬 저장소의 작업을 원격으로 올리기 위한 명령을 수행합니다.
git push origin master
위의 명령을 수행할 경우 정상적으로 업로드 되지 않고 ![rejected] 메세지가 출력되며 원격 저장소로 올리는 것이 실패합니다. 이유는 같은 브랜치에 다른 커밋이 있기 때문에 에러가 발생합니다.
이를 해결하기 위해서는 fetch 명령을 수행하여 원격 저장소의 커밋 정보를 로컬 저장소에 가져옵니다.
fetch 명령을 실행한 후 status로 상태를 확인합니다. branch 명령으로 현재 브랜치를 확인합니다.
git fetch git status git branch -a
merge 명령을 사용하여 병합을 시도합니다. 그러나 위의 그림과 같이 충돌이 발생했다는 메세지가 출력됩니다.
git merge origin/master
diff 명령으로 로컬 저장소의 브랜치와 원격 저장소의 브랜치 사이에 차이점을 확인합니다.
만약 git pull 명령을 사용할 경우 자동으로 병합하기 때문에 서로의 차이점을 확인할 수 없습니다.
hello.py 파일 내용을 수정하고 커밋을 수행합니다.
커밋을 수행합니다.
git commit -a -m "conflict resolved GitHub" git status
git push origin master
9. git pull 명령
원격 저장소에서 hello.py 소스에 출력 코드를 하나 더 추가합니다.
원격 저장소의 브랜치가 hotfix 이므로 로컬 저장소의 브랜치도 hotfix로 변경하여 pull 명령을 수행합니다.
git checkout hotfix git pull origin hotfix
완료 후 git commit과 git merge 면령을 실행해도 작업이 완료되었다는 메세지가 출력됩니다.
'소프트웨어 > Linux' 카테고리의 다른 글
Ubuntu 16.04 - SSH 설치 (0) | 2019.02.20 |
---|---|
Linux(Ubuntu) Tips (0) | 2019.02.18 |
Git 설치와 설정 (0) | 2019.02.06 |
VirtualBox에 설치된 Ubuntu 18.04 LTS 공유폴더 설정 (0) | 2018.11.04 |
VirtualBox에서 Ubuntu 18.04 LTS 설치 (2) | 2018.11.04 |