안녕하세요. ^^
저번 시간에 이어 이번시간에는 Git와 Git연동에 대한 두번째 시간을 가져보도록 하겠습니다.
그럼 시작해볼까요??
먼저, git push에 대해서 알아보겠습니다.
원격저장소에 자신이 작업한 결과물을 업로드해야하는데, 그때 쓰이는 명령어가 git push입니다.
명령어가 참 직관적이죠?
git push명령어만 실행하면 경고메시지가 등장합니다. 아이디와 암호를 입력하라는 창이 뜨고 아이디와 암호를 입력해도 진행이 되지 않습니다.
그 이유는 어느 원격저장소로 발행을 할 것인지, 로컬의 어느 브랜치를 푸시할 것인지 명시하지 않았기 때문에 진행이 되지 않습니다.
git push origin --all 명령어를 입력합니다.
git push 원격저장소별칭 로컬브랜치이름 입니다. 위에서 실행한 --all 옵션은 origin 저장소에 로컬의 모든 브랜치를 푸시하는 명령어 입니다.
이제 GitHub 웹 사이트를 확인해보면 원격저장소에 로컬 저장소의 프로젝트가 푸시된 것을 확인할 수 있습니다.
그럼 이제는 원격저장소에서 파일을 하나 추가한 후 다시 내용을 푸시해보겠습니다. 먼저 로컬에서 변경 내역을 하나 만들고 커밋합니다.
아래와 같이 타이핑하고 실행합니다.
다시 git push 명령을 실행해 변경 내역을 푸시할 차례입니다.
git push origin master를 실행합니다.
GitHub 웹 사이트에서 제대로 잘 반영되었는지 확인해 봅니다.
그다음으로 git fetch와 git pull에 대해서 설명하겠습니다.
내가 로컬 저장소에서 작업하는 도중에 다른 협업 개발자가 원격 저장소를 먼저 변경하게 되면, git은 푸시를 허용하지 않습니다.
로컬저장소의 커밋들을 원격저장소와 맞춰야하는데 이럴때 사용하는 것이 fetch입니다.
fetch는 원격 저장소의 commit들을 로컬 저장소로 가져옵니다. 사용자는 로컬로 가져온 커밋들을 자신이 지금까지 작업한 내용과 적절하게 병합한 후 다시 제출해야합니다.
병합하는 방법에는 fetch와 pull이 있는데, pull은 페치와 병합을 동시에 수행하는 명령어입니다.
그러므로, 어디가 어떻게 바뀌었는지 세세하게 알 수 가 없으므로 추천하지 않고 페치를 이용해서 수동으로 작업하는것을 추천합니다.
깃허브로 가서 remote_test 저장소의 helloworld.py 파일을 수정해보겠습니다.
맨 오르쪽의 연필표시를 클릭해서 수정모드로 진입합니다.
수정모드로 진입하여 // GitHub modify를 입력합니다.
그리고 나서 아래와 같이 helloworld.py modified on GitHub를 입력하고 Commit Changes를 클릭합니다.
커밋이 완료되면 아래와 같은 화면을 볼 수 있습니다.
이제 로컬 저장소에서 같은 파일을 수정하고 커밋해볼 차례입니다. vi helloworld.py 명령을 실행하고 다음과 같은 주석을 추가합니다.
그리고 git commit -a -m "helloworld.py modified on Local repository"를 실행해 커밋합니다.
git status 명령을 실행해 별 이상이 없는지 확인합니다.
그리고 난 다음 git push orgin another를 하게되면 오류가 발생합니다.
원격저장소와 로컬저장소의 같은 브랜치가 다른 커밋을 가지고 있기 때문에 발생하는 오류입니다.
먼저, git fetch 명령어를 실행해서 원격 저장소의 커밋 정보를 로컬저장소로 가져옵니다. git status 명령을 실행해 확인하면 아직은 별다른 큰 이상이 나타나지 않습니다.
git merge를 실행하면 충돌이 발생하는데...
git diff 명령어로 차이점을 확인 한 후 적절히 수정한 후 git commit -a -m "conflict resolved GitHub" 를 수행합니다.
그러고 난 후 git push orgin another 명령을 수행하여 푸시를 완료합니다.
오늘은 여기까지 하겠습니다.
그럼 다음시간에 다시 찾아뵙겠습니다.
그럼 안녕히~~~~~
이클립스에서 Git 사용법 2 (0) | 2019.01.04 |
---|---|
이클립스에서 Git 사용법 1 (0) | 2019.01.03 |
GitHub와 Git 연동 ( git clone, git remote ) (0) | 2019.01.01 |
GitHub 원격저장소 생성 (0) | 2018.12.30 |
GitHub 가입하기 (0) | 2018.12.29 |
댓글 영역