깃 & 깃허브 입문2021. 6. 9. 16:52
728x90

* BOLD체 ( 굵은글씨 )

 

# When I enter RIGHT SANDWICH and RIGHT CAKE

 

 

* 이미지

 

우선 컴퓨터에서 img폴더를 만들어서 필요한 이미지들을 저장한다.

 

Add file에서 깃허브에 드래그&드랍으로 올린다.

(add file이지만 폴더도 잘 올라감)

[ 코드 ]

customer A
![jpg_1](./img/1.JPG)

 

[ 결과 ]

 

 

 

 

-----------------------------

[ 전체코드 ]

# python_gui_bakery
implement a bakery program with python gui.


# When I enter RIGHT SANDWICH and RIGHT CAKE
customer A
![jpg_1](./img/1.JPG)

custormer B
![jpg_2](./img/2.JPG)


# When I enter WRONG SANDWICH and RIGHT CAKE
customer A
![jpg_3](./img/3.JPG)

customer A
![jpg_5](./img/5.JPG)


# When I enter WRONG SANDWICH and WRONG CAKE
![jpg_4](./img/4.JPG)


 

 

[ 전체 결과 ]

https://github.com/mmingyy/python_gui_bakery.git

반응형
Posted by mminky
깃 & 깃허브 입문2020. 7. 29. 09:56
728x90

* git clone & git pull 차이

https://mminky.tistory.com/39

 

 

깃허브에서 clone을 하고 싶은데 어떻게 하는지 헷갈리는 분들을 위해 정리합니다!

 

우선 clone을 원하는 저장소를 찾으셨나요?

 

저는 이 저장소( https://github.com/mmingyy/appbrowser ) clone 해보겠습니다.

 

저장소에 접속한 후 Code 버튼을 클릭합니다.

 

 

다음의 버튼을 클릭하면 해당 저장소의 주소가 복사됩니다.

 

cmd창이나 visual studio code의 터미널 등에 다음과 같이 입력하면 되겠죠?!

git clone 하고 붙여넣기 하면 다음과 같이 입력됩니다 :)

git clone https://github.com/mmingyy/appbrowser.git

 

반응형
Posted by mminky
깃 & 깃허브 입문2020. 7. 27. 17:12
728x90

우선 Xcode를 실행합니다.

Clone an existing project를 클릭합니다.

 

그리고 위의 칸에 clone하고자하는 깃허브 주소를 입력합니다.

 

( 깃허브 주소 가져오는 법 )

 

입력 후 clone 버튼을 클릭합니다.

 

저장할 이름과 위치를 선택한 후 clone을 클릭!합니다.

 

이렇게 하면 Clone이 완료 되고 Finder에서 클론된 파일들을 보여줍니다.

 

-------------------------------------------------------------------------------------------

이제 Xcode에서 열어보겠습니다.

Open another project...를 클릭합니다.

 

원하는 프로젝트를 선택한 후 Open을 클릭하면 됩니다!

반응형
Posted by mminky
깃 & 깃허브 입문2020. 7. 23. 09:12
728x90

우선 깃허브에서 repository를 생성합니다.

깃허브 원격 저장소 생성 방법은 다음의 글을 참조해주세요 :)

https://mminky.tistory.com/8

[CH 04] 깃허브로 백업하기 1 (깃허브 저장소 만들기)

1) 깃허브란 깃허브는 인터넷에서 제공하는 원격 저장소입니다. 원격저장소는 지역저장소(본인의 컴퓨터)가 아닌 컴퓨터나 서버에 만든 저장소를 뜻합니다. 특히 백업, 협업을 할 때 유용합니다

mminky.tistory.com

깃허브에 repository를 생성했다면 이제 올려봅시다!

 

우선, 깃허브에 올리고싶은 프로젝트 디렉토리로 이동합니다.

저의 경우 Documents\ionic_project\appbrowser 디렉토리로 이동해야 합니다.

cd(=change directory) 명령어로 폴더(=directory)를 이동 할 수 있습니다.

cd Documents 를 하면 Documents 폴더로 이동합니다.)

 

 

 

그리고 git init 명령어를 입력합니다.

git init

 

 

 

커밋과 add를 합니다.

git commit -a -m "커밋메시지"

-a는 커밋하면서 add를 함께한다는 의미입니다. (전체 프로젝트 폴더에서 해야 함)

-m은 커밋메시지를 입력하는 옵션입니다.

 

 

 

origin의 주소를 설정해줍니다.

git remote add origin (깃허브의 저장소 주소)

 

 

 

origin(remote 저장소)의 master 브랜치로 push 합니다.

git push -u origin master

 

 

 

깃허브에 올라와있는거 확인하면 끝!!!

 

※ 제 글이 도움이 되었다면 공감 부탁드려요 :)

반응형
Posted by mminky
깃 & 깃허브 입문2020. 7. 23. 09:03
728x90

1) 복제하기 Clone/ Cloning

 

$ git clone 복사한 주소 복제할 디렉터리

 : 복사한 주소(원격 저장소)를 복제할 디렉터리(지역저장소)로 복사하는 것

 

하나의 원격저장소를 kim과 jeong이 함께 이용한다고 가정해보겠습니다.

우선 원격저장소인 doit-git을 지역저장소인 kim, jeong에 복사해보겠습니다.

깃허브에서 복사할 원격저장소인 doit-git에 들어간 후, clone or download를 선택합니다.

그리고 복사하기 버튼을 눌러서 복사합니다.

(이때, ssh로 하고 싶으신 분은 Use SSH를 선택하시면 됩니다.)

원격저장소 'doit-git'

 

$ git clone 복사한 주소 복제할 디렉터리 명령어를 이용해서 kim과 jeong에 복제합니다.

git clone은 '복제할 디렉터리'가 없다면 자동으로 생성한 후 복제합니다.

 

참고)

$ git clone 복사한 주소 .

: 원격저장소를 현재 디렉터리( . )에 복제

git clone

 

지역저장소 jeong과 kim에 같은 내용(doit-git)이 복제되었는지 확인해보겠습니다.

kim의 git log

$ cd ..

: 상위 디렉터리로 이동

 

현재 kim 디렉터리에 있는데, jeong으로 이동하기 위해서는 kim의 상위 디렉터리로 이동해야합니다.

따라서 상위디렉터리로 이동 후 jeong으로 이동합니다.

jeong의 git log

이 둘을 비교해보면 3개의 커밋이 일치하다는 것을 알 수 있습니다.

 

또한, 원격 저장소를 복제하면 자동으로 지역저장소와 원격저장소가 연결됩니다.

$ git remote -v 명령어로 연결된 원격저장소를 확인 할 수 있습니다.

지역저장소(jeong)와 원격저장소(doit-git)가 연결됨

지역저장소 kim 디렉터리의 hello.txt에 'kim_first'라는 문구를 추가했습니다.

그리고 commit -am을 통해 스테이징과 커밋을 함께 했습니다.

(한 번 커밋된 적이 있어서 스테이징&커밋 한 번에 가능)

 

$ git push를 통해 수정한 내용을 원격저장소인 doit-git에 push했습니다.

kim의 hello.txt 수정 후 원격저장소에 push

깃허브의 원격저장소인 doit-git에 들어가서 commits를 클릭하면

다음과 같이 지역저장소인 kim에서 커밋한 'add kim-first'가 적용된 것을 알 수 있습니다.

원격저장소(doit-git)의 커밋이력

 

2) 원격저장소에서 지역저장소로 내려받기

지역저장소 jeong 입장에서는 원격저장소 doit-git이 초기에 복제했던 상태와 달라졌습니다.

그래서 원격저장소의 새 커밋을 가져와야합니다.

 

$ cd ~/jeong

: $ cd ~$ cd jeong 을 합친 명령어

지역저장소 jeong으로 이동

$ git pull

: 원격저장소 -> 지역저장소

원격저장소(doit-git)에서 지역저장소(jeong)으로 가져옴

$ vim hello.txt 명령어로 jeong 내부에 있는 hello.txt가 어떻게 바뀌었는지 확인해보았습니다.

kim에서 수정한 'kim_first'가 추가되어있는 것을 확인 할 수 있습니다.

pull 후 jeong의 hello.txt

 

※ 이렇게 하나의 원격 저장소둘 이상의 지역저장소를 연결해서 이용한다면

항상 시작할 때 pull을, 수정 후 push를 하는 것을 습관화 하는 것이 좋습니다.

 

3) 지역저장소, 원격저장소 최종 커밋

우선 지역저장소 kim으로 이동합니다.

지역저장소 kim

$ git log --oneline 명령어를 통해 커밋 상태를 확인해보았습니다.

 

이 때, 최종커밋인 add kim-first 앞에 있는 문구는 (HEAD -> master, origin/master, origin/HEAD)입니다.

여기서 HEAD->master지역저장소의 최종 커밋을,

origin/master원격저장소의 최종 커밋을 의미합니다.

 

아까 add kim-first를 지역저장소인 kim에서 만들고, 원격저장소로 pull했으니 둘의 최종 커밋이 add kim-first겠죠?

커밋상태 확인

kim에 새로 'create hello 3'라는 커밋을 추가하자 HEAD->master가 가리키는 것을 알 수 있습니다.

그리고 아직 push하지 않았으므로 원격저장소의 최종 커밋은 여전히 'add kim-first'임을 알 수 있습니다.

지역저장소 kim에 create hello 3커밋 추가

 

$ git status 명령어로 깃의 상태를 확인해보니,

지역브랜치가 원격브랜치보다 1 commit 앞서있으므로, "git push"를 이용해서 푸쉬 하라는 메시지가 나타납니다.

git status

$ git push 명령어로 원격저장소에 올려주면

다음과 같이 HEAD->master(지역)와 origin/master(원격) 둘 다 create hello 3커밋을 가리키는 것을 알 수 있습니다.

push 후 커밋로그

 

4) 원격 브랜치의 정보만 가져오기

$ pull 명령어는 원격저장소의 커밋을 바로 지역저장소에 합쳐줍니다.

하지만 합치기 전에 원격저장소에 어떤 변화가 있었는지 확인하는게 더 좋겠죠?

이 때 사용하는 명령어가 fetch(가져오다) 입니다.

 

$ git fetch

: 원격 저장소의 정보를 가져옴

 

위의 예시들을 잘 따라왔다면 현재 kim과 원격에는 'create hello 3'커밋이 있지만,

jeong에는 없는 상태 일 것 입니다.

 

jeong디렉터리로 이동 후 $ git fetch 명령어로 원격저장소 doit-git에서 가져옵니다.

그리고 ls -al로 상세 내역을 봅니다.

원격저장소에 hello3.txt파일을 올렸지만, 나타나지 않습니다

더보기

[ jeong에서 확인한 git log ]

 

$ git log 로 확인을 해보면 지역저장소의 최신 커밋인 HEAD -> master만 있는 것을 알 수 있습니다.

즉, 아직 jeong에 합치지 않아 원래 jeong에 있던 것만 나타납니다.

$ git staus를 통해 확인해보면 origin/master(원격)에 비해 1 commit 뒤처져 있으니

"git pull"을 통해 원격저장소에서 가져오라는 메시지가 나타납니다.

 

$ git checkout FETCH_HEAD

: FETCH_HEAD 브랜치로 이동

 

fetch로 가져온 최신 커밋 정보는 FETCH_HEAD에 있습니다.

따라서 FETCH_HEAD로 이동 후 git log로 확인해보겠습니다.

FETCH_HEAD로 이동

origin/master, origin/HEAD가 표시된 'create hello 3' 커밋이 원격브랜치의 최신 커밋임을 알 수 있습니다.

이렇게 fetch를 통해서 원격브랜치의 상태를 확인 할 수 있습니다.

 

확인 후 원격브랜치의 최신 커밋을 현재 브랜치에 합치고 싶으면

$ git merge FETCH_HEAD 명령어로 FETCH_HEAD의 커밋을 병합 할 수 있습니다.

 

우선 master브랜치로 이동 후 FETCH_HEAD 브랜치를 병합합니다.

 

다시 jeong의 git log를 확인해보면 다음과 같이 create hello 3에 HEAD->master, origin/master가 가리키는 것을 알 수 있습니다.

jeong의 git log

 

$ git pull

    =  $ git fetch + $ git merge FETCH_HEAD

 

즉, git pull 명령어를 이용하면

원격브랜치를 가져오기(git fetch)와 병합하기(FETCH_HEAD)를 한 번에 할 수 있습니다.

 

---------------------------------------------------------------------------------------------------

본 글은 Do it! 깃&깃허브 입문 책을 참고하여 작성하였습니다.

https://book.naver.com/bookdb/book_detail.nhn?bid=15910099

반응형
Posted by mminky
깃 & 깃허브 입문2020. 7. 23. 09:03
728x90

3) 지역저장소에서 원격저장소에 올리기

 (1) 지역저장소, 원격저장소 연결

 원격저장소에 파일을 업로드하기 위해서는 지역저장소와 원격저장소의 연결이 필요합니다.

 

 우선 local-rep이라는 지역 저장소에 hello.txt파일을 만들었습니다.

 그리고 hello라는 내용을 입력한 후 커밋했습니다. 

지역저장소

 아까 만들었던 원격저장소에 들어가면 ...or push an existing repository from the command line(커맨드라인 이용)

 방법이 적혀있습니다.

 command line을 이용한 방법을 따라 해보겠습니다!

command line 이용한 저장소 연결

 복사하기 버튼을 눌러서 한 번에 붙여넣어도 되지만 오늘은 직접 입력해보겠습니다.

 $ git remote add origin 복사한 주소

  : remote(원격저장소)에 origin(깃허브저장 주소)을 추가

    즉, 지역저장소를 특정 원격저장소에 연결

remote add origin

 * 깃의 기본 브랜치 master인 것 처럼 기본 원격저장소 origin 입니다.

 

 $ git remote -v

git remote

 git remote명령어에 -v옵션을 붙이면 origin의 주소가 나타납니다.

 아까 만들었던 원격저장소의 주소가 맞는지 확인해보세요:)

 

 (2) 원격저장소에 push, pull

 push : 지역저장소 -> 원격저장소

 pull  원격저장소 -> 지역저장소

 

 $ git push -u origin master

 : 지역저장소의 브랜치를 원격저장소의 master브랜치(origin)에 연결

 

 이 명령어를 입력하면 깃 허브 로그인 창이 나타납니다! (글쓰다가 날려서 사진이 없네요 ㅠ)

 본인의 깃허브 아이디와 비밀번호로 로그인해주세요.

 

 만약 아이디와 비밀번호를 잘못 입력했다면

 fail되었다고 하면서 OpenSSH창이 나타납니다.

로그인 실패시
OpenSSH

 그러면 다시 Username과 Password를 입력해봅니다!

 

 로그인에 성공했다면 다음과 같이 나타납니다.

push 성공

 push가 성공했는지 확인하러 원격저장소에 접속합니다.

push 된 모습

 hello.txt가 올라간 것을 볼 수 있습니다. 옆에는 최신 커밋메시지인 add hello가 적혀있네요 :)

 한 번 연결해서 push했다면 그 다음 부터는 $ git push만 입력하면 됩니다.

 

 아까 만들었던 hello.txt에 world를 넣어서 다시 커밋해보겠습니다.

 이번에는 git push만 입력해도 성공하는 것을 볼 수 있습니다.

두번 이상 push 시

 원격저장소에 들어가면 다음과 같습니다.

 최신 커밋 메시지인 add world가 적혀져 있습니다.

 그리고 2 commits를 클릭해보면 다음과 같이 커밋 이력이 나타납니다.

커밋이력

 

 또한 hello.txt를 클릭하면 내용을 볼 수 있습니다.

hello.txt

 * 깃허브 사이트에서 바로 commit 하기

 : Create new file -> 파일명&내용 입력 -> 커밋메시지&설명 입력 -> Commit new file

 

 $ git pull origin master

 : 원격저장소 -> 지역저장소 가져오기

 우선 깃허브 사이트에서 test2.txt파일을 만들었습니다.

 즉, 원격저장소에는 test.txt와 test2.txt가 있고, 지역저장소에는 test.txt만 있는 상태입니다.

git pull origin master

 git pull origin master명령어로 원격저장소에 있는 파일을 가져옵니다.

 이때, 기본적으로 원격저장소는 master이고 지역저장소의 브랜치가 master이기 때문에 git pull만 입력해도 무방합니다.

 $ git log를 해보니 깃허브에서 커밋한 이력이 함께 나타납니다.

지역저장소 커밋이력

 

또한, $ ls 명령어로 지역저장소인 local-rep에 hello2.txt도 포함된 것을 알 수 있습니다.

지역저장소 파일목록

3) 깃허브에 SSH 원격 접속

 SSH : Secoure SHell의 약자로 보안된 방법으로 정보를 교환하는 방식입니다.

 좌물쇠 역할의 퍼블릭 키와 열쇠 역할의 프라이빗 키가 생성됩니다.

 우선, 퍼블릭 키를 깃허브 서버로 전송해 저장합니다. 그리고 깃허브에 접속해 사용자가 가진 프라이빗 키(열쇠)를

 퍼블릭키와 맞춰봅니다. 맞다면 사용자 컴퓨터와 깃허브 저장소가 연결됩니다.

 

 (1) 보안키 생성

 $ ssh-keygen

  : 보안키를 생성합니다.

보안키 생성

 파일 이름을 입력하라고 하는데 저는 그냥 Enter키를 누르겠습니다.

 

 그리고 passphrase가 필요하면 입력하라고 하는데 저는 입력하지 않겠습니다.

private key, public key

 위와 같이 ~/.ssh에 프라이빗키(id_rsa)와 퍼블릭키(id_rsa.pub)가 생성된 것을 확인 할 수 있습니다.

 

 (2) 깃허브에 퍼블릭 키 전송

퍼블릭키

 $ cat id_rsa.pub 명령어를 입력하면 퍼블릭키의 내용이 나옵니다. 나타난 내용을 복사합니다.

 이때 불필요한 빈 칸, 빈 줄은 최대한 포함시키지 않습니다.

 

 깃허브 -> 사용자아이콘 클릭 -> Settings 선택

settings

 SSH and GPG Keys -> New SSH Key 선택

퍼블릭 키 등록

 퍼블릭 키는 여러개를 등록 할 수 있습니다.

 따라서 알맞은 이름을 붙여서 저장합니다.

 그리고 Key 칸에 아까 복사해두었던 키를 붙여넣고 Add SSH Key 버튼을 클릭합니다.

퍼블릭 키 등록

 그러면 비밀번호 확인 창이 나타납니다. 깃허브의 비밀번호를 입력한 후 Confirm Password를 클릭합니다.

 

 (3) SSH 주소로 원격저장소 연결

 이번에는 ssh로 연결하기 위해 새 저장소를 만들었습니다.

 그리고 이번에는 https 대신 ssh를 선택한 후 ssh주소를 복사합니다.

새 저장소의 ssh 주소

 $ git remote add origin 복사한 주소

  : 방법은 https 주소와 동일합니다. 아까 복사해뒀던 ssh 주소를 붙여넣습니다.

 

 홈 디렉터리에 local-with-ssh라는 새 지역저장소를 생성합니다.

 local-with-ssh 디렉터리로 이동 후 git remote add origin 명령어를 입력합니다.

ssh로 연결하기

 git remote -v 명령어로 확인을 하면 끝!!

git remote

  

---------------------------------------------------------------------------------------------------

본 글은 Do it! 깃&깃허브 입문 책을 참고하여 작성하였습니다.

https://book.naver.com/bookdb/book_detail.nhn?bid=15910099

반응형
Posted by mminky
깃 & 깃허브 입문2020. 7. 23. 08:59
728x90

1) 깃허브란

깃허브는 인터넷에서 제공하는 원격 저장소입니다.

원격저장소는 지역저장소(본인의 컴퓨터)가 아닌 컴퓨터나 서버에 만든 저장소를 뜻합니다.

특히 백업, 협업을 할 때 유용합니다.

 

깃허브는 대부분의 개발자가 이용하고 있고, 오픈소스가 많이 올라와있기 때문에

개발자라면 아주 유용한 서비스입니다.

 

아직 가입하지 않으신 분은 아래 게시글 참고해서 가입해주세요:)

https://mminky.tistory.com/9

 

[깃허브 가입하기]

오늘은 깃허브에 가입하는 방법에 대해서 알아보겠습니다! 깃허브는 많은 개발자들이 쓰고 있고 개발자라면 필수로 가입하는 서비스이죠?! 같이 가입해봐요:) https://github.com/ Build software better, togethe..

mminky.tistory.com

-----------------------------------------------------------------------------------------------------------------------------------

2) 원격 저장소(repository) 만들기

 

깃허브에 로그인 후 '+'버튼을 누르면 아래 사진과 같은 메뉴가 나타납니다.

새 저장소를 만들기 위해 'New repository'를 선택합니다.

새 저장소 만들기
저장소 만들기

위의 예시처럼 필요한 항목을 입력 후 Create repository 버튼을 클릭합니다.

 

Initialize this repository with a README는 저장소 소개를 작성하는 readme파일을 기본으로 만들어준다는 뜻 입니다.

(책에서는 readme파일을 나중에 공부하기 때문에 체크하지 않았습니다.)

Add.gitignore은 깃에서 무시할 언어를 선택하는 것 입니다. ( 어떤 것을 .gitignore에 넣을지 )

 

저장소 만들기 성공!

저장소가 다 만들어지면 위와 같이 https주소가 나타납니다.

옆에 있는 버튼(아래 사진 첨부)을 클릭하면 주소를 쉽게 복사할 수 있습니다.

제 저장소 주소는 https://github.com/mmingyy/doit-git.git 이네요 :)

 

 

 

[ 깃허브 공동 작업자 collaborator 추가 ]

Settings -> Manage access -> Invite a collaborator -> 이메일/닉네임 입력해서 추가!

 

---------------------------------------------------------------------------------------------------

본 글은 Do it! 깃&깃허브 입문 책을 참고하여 작성하였습니다.

https://book.naver.com/bookdb/book_detail.nhn?bid=15910099

반응형
Posted by mminky
깃 & 깃허브 입문2020. 7. 22. 10:45
728x90

이전 프로젝트를 하다가 새 프로젝트를 시작하면

remote(원격저장소)의 origin 주소를 수정해야 합니다.

 

* 기존의 origin 제거

git remote remove origin

 

* 새 origin 추가

git remote add origin https://github.com/계정/저장소주소.git

 

 

그리고 commit, push origin master하면 잘 실행됩니다 :)

반응형
Posted by mminky