Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubJunyoung Lee
OSS 포럼 개발자 교육 'Git/GitHub 입문하기 - 부산'에서 Git 실습에서 사용한 자료입니다. (http://onoffmix.com/event/69536)
지난 번 자료(http://www.slideshare.net/ssusercef361/git-github-62006866)는 구름 IDE를 활용해서 진행했고, 이번 자료는 Git 클라이언트를 설치해서 진행했습니다. GitHub 가입과 Git 클라이언트 설치는 강의 전 준비(http://www.slideshare.net/ssusercef361/github-git)를 참고해주세요.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
특정 폰트가 SlideShare.net에서 보이지 않는 관계로 모두 나눔고딕으로 통일했습니다.
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubJunyoung Lee
OSS 포럼 개발자 교육 'Git/GitHub 입문하기 - 부산'에서 Git 실습에서 사용한 자료입니다. (http://onoffmix.com/event/69536)
지난 번 자료(http://www.slideshare.net/ssusercef361/git-github-62006866)는 구름 IDE를 활용해서 진행했고, 이번 자료는 Git 클라이언트를 설치해서 진행했습니다. GitHub 가입과 Git 클라이언트 설치는 강의 전 준비(http://www.slideshare.net/ssusercef361/github-git)를 참고해주세요.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
특정 폰트가 SlideShare.net에서 보이지 않는 관계로 모두 나눔고딕으로 통일했습니다.
* SlideShare에서 특정 폰트로 쓰인 글자가 보이지 않는 경우가 있습니다. 다운로드 하셔서 PDF 리더로 보시는 것을 권해드립니다. -> 기존 폰트를 모두 나눔고딕으로 변경하였습니다.
OSS 포럼 개발 교육으로 진행한 Git, GitHub 강의 자료입니다.
(http://onoffmix.com/event/67081)
간단한 로또 번호 생성기 프로그램을 작성하면서 Git, GitHub에 대해 배웁니다.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
Source Tree로 버전 관리하는 법
- Git이 필요한 이유
- Stage(=Index에 기록)하기
- Commit하기
- Remote 추가하기
- Origin Remote로 GitHub 사용
- Push하기
- Clone하기
- Reset (Soft, Hard, Mixed)
- Revert
- Checkout, Detached HEAD
- 이전 Commit 수정하기
- Pull / Fetch&Merge하기
- Branch 만들기
- Fast Forward Merge하기
- 3-Way Merge하기
- 3-Way Merge에서 발생할 수 있는 Conflict 해결하기
- Visual Studio로 Conflict 해결하는 법
- Stash로 다양한 문제 해결해보기
- 오래된 저장소에서 Pull하기
- 다른 브랜치로 Commit 옮기기
- .gitignore 파일 설정하기
Last Summit, we walked you through a migration from SVN to Git. So now you’re on Git – but what do you do with those branches? Branching in Git is great, but can be intimidating for those coming over from other SCMs. In this talk, you will learn all about branches – how to use them, organize them, and even revert an accidental merge. Embrace those branches and make them work for your team.
* SlideShare에서 특정 폰트로 쓰인 글자가 보이지 않는 경우가 있습니다. 다운로드 하셔서 PDF 리더로 보시는 것을 권해드립니다. -> 기존 폰트를 모두 나눔고딕으로 변경하였습니다.
OSS 포럼 개발 교육으로 진행한 Git, GitHub 강의 자료입니다.
(http://onoffmix.com/event/67081)
간단한 로또 번호 생성기 프로그램을 작성하면서 Git, GitHub에 대해 배웁니다.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
Source Tree로 버전 관리하는 법
- Git이 필요한 이유
- Stage(=Index에 기록)하기
- Commit하기
- Remote 추가하기
- Origin Remote로 GitHub 사용
- Push하기
- Clone하기
- Reset (Soft, Hard, Mixed)
- Revert
- Checkout, Detached HEAD
- 이전 Commit 수정하기
- Pull / Fetch&Merge하기
- Branch 만들기
- Fast Forward Merge하기
- 3-Way Merge하기
- 3-Way Merge에서 발생할 수 있는 Conflict 해결하기
- Visual Studio로 Conflict 해결하는 법
- Stash로 다양한 문제 해결해보기
- 오래된 저장소에서 Pull하기
- 다른 브랜치로 Commit 옮기기
- .gitignore 파일 설정하기
Last Summit, we walked you through a migration from SVN to Git. So now you’re on Git – but what do you do with those branches? Branching in Git is great, but can be intimidating for those coming over from other SCMs. In this talk, you will learn all about branches – how to use them, organize them, and even revert an accidental merge. Embrace those branches and make them work for your team.
그림그리기에 빗대어 설명하는 Git의 Commit과 Branch.
Git을 이해하는데 있어 가장 중요한 것은 Commit과 Branch에 대한 이해라고 생각합니다. 조금은 가볍고 편안하게(?) 그림에 빗대어 설명하다보니 많은 내용이 생략되어 있는 점 참고하고 봐주시기 바랍니다.
Git을 이해하는데 도움이 되길 바랍니다.
이 자료는 블로터 아카데미에서 매달 진행하는 Git강의에서 사용되는 자료중 일부입니다.
블로터 git 강의 안내 : https://www.bloteracademy.net/archives/ai1ec_event/git_201412?instance_id=
The document discusses flat design, which is a minimalist design trend that uses simple geometric shapes and typography without shadows and textures. Flat design aims to be clean and clear through the use of only essential elements like colors, typography, and shapes. This design style has become increasingly popular for website design as it is visually simple yet communicates effectively on mobile screens.
The document contains code snippets demonstrating the use of TensorFlow for building and training neural networks. It shows how to:
1. Define operations like convolutions, max pooling, fully connected layers using common TensorFlow functions like tf.nn.conv2d and tf.nn.max_pool.
2. Create and initialize variables using tf.Variable and initialize them using tf.global_variables_initializer.
3. Construct a multi-layer perceptron model for MNIST classification with convolutional and fully connected layers.
4. Train the model using tf.train.AdamOptimizer by running optimization steps and calculating loss over batches of data.
5. Evaluate the trained model on test data to calculate accuracy.
6. 2) 기본설정
도구 > 옵션
Git 탭을 선택 > 파일수정 클릭
리모트 저장소(Git) 에 올리지 말아야 할 확장자 및 폴더를 설정 (모든 플젝에 적용됨 Global)
7. 1) 로컬 저장소 생성
1_1) 1번 “복제 / 생성” 버튼을 클릭
1_2) (혹은) 2번 오른쪽 마우스 클릭 후 나타나는
팝업 창에서 “새 저장소 생성“ 선택
1
2
8. 1) 로컬 저장소 생성
1_3) 저장소를 위치를 선택
1_4) 좌측 탐색기에 생성될 이름을 설정 (1_3 에서 폴더를 선택하면 자동으로 폴더 명으로 설정됨)
3
4
9. 1) 로컬 저장소 생성
1_5) 좌측 탐색기에 저장소(Test01) 이 표시
1_6) 현재 작업중인(열린) 프로젝트를 탭으로 표시
* 이후 작업 (여기선 .txt 파일 하나 생성)
1_7) 데모
5
6
10. 2) 프로젝트 설정
2_1) 우측 상단 “설정” 버튼 클릭
2_2) 현재 “원격 저장소”가 없기 때문에
패스
2_3) “원격 저장소“ 에 올리지 말아야 할 확장자 및 폴더를 설정
(현재 프로젝트에만 국한됨)
2_4) “커밋”시 사용자 정보에 기록될 정보 (이름, 이메일)
* 작업을 했다고 가정 (test.txt 파일 생성)
1
2
3
4
11. 2) 프로젝트 설정
2_5) 클릭하여 변경 되거나 새로 추가된
파일의 내용을 2_6)에서 볼 수 있다.
2_6) 체크박스를 통해 스테이지로 올릴
수 있다 (스테이지에 올려야만
“커밋”가능)
2_7) 작업된 내용을 입력
2_8) “커밋”한다
5
6
7
8
12. 2) 프로젝트 설정
2_9) 이상없이 “커밋”이 되면 브랜치 영역에
“master” 브랜치가 노출된다
2_10) “로그/히스토리"에도 “master” 헤더가
보여진다
2_11) 상단 큰 아이콘 메뉴에서 “깃 플로우…” 클릭
2_12) 초기화 대화상자가 나온다 “확인“ 클릭
2_13) “develop” 이라는 개발 브랜치가 생성된다
2_14) “로그/히스토리“ 에도 “develop” 헤더가
“master” 헤더와 동일선상에 위치한다
2_15) 데모
10
9
11
12
13
14
13. 1) 리모트 저장소 생성
1_1) GitLab 에 저장소 생성
1_2) Project 이름 (Test01)
1_3) 포함될 그룹을 설정 없다면 개인 계정
선택
1_4) 설명 (옵션)
1_5) 오픈된 프로젝트라면 선택
1_6) 클릭으로 생성
1_7) 저장소만 존재하기 때문에 기본 페이지
에서는 접속 url 만 보인다 복사
1
2
3
4
5
6
7
14. 2) Push
2_1) 상단 “설정”메뉴 클릭
2_2) “원격” 탭 선택
2_3) “추가” 버튼 클릭
2_4) 체크를 하면 “origin” 이라는 원격이름
자동 생성
2_5) “리모트 저장소” url 을 입력
2_6) “확인“ 버튼 클릭
2_7) “원격 저장소” 경로가 보여짐
2_8) “확인“ 버튼 클릭
1
2
3
4
5
6
7
8
15. 2) Push
2_9) 좌측에 “원격 저장소 브랜치“가 보이게
된다.
2_10) 상단 “푸시“ 메뉴 클릭 하면 대화상자가
열림
2_11) 우리는 “develop” 만 체크(우리는 “develop”
만 사용 하기로함)
2_12) “확인” 버튼 클릭
9
10
11
12
16. 2) Push
2_13) “Push”후 “로그/히스토리”를 보면
“원격 저장소 브랜치”의 헤더가
“master”, “develop” 과 같은 선상에
놓여진 것을 확인할 수 있다
2_14) “원격 저장소”의 “Files” 부분을 보면
test.txt 파일이 잘 올라가 있는
것을 확인할 수 있다
2_15) 데모
13
14
18. 3) Pull
3_6) 상단 “브랜치“ 메뉴를 클릭 (대화상자)
3_7) “새 브랜치“ 영역에 “master” 라고 입력
3_8) “브랜치 생성“ 버튼 클릭
3_9) “master” 브랜치가 생성된걸 확인할 수
있다
6
7
8
9
19. 3) Pull
3_10) 초기화를 위한 “깃 플로우…” 버튼을 클릭
(대화상자)
3_11) “확인“ 버튼을 클릭
3_12) 데모
10
11
20. 1) Develop Branch 생성
1_1) “깃 플로우…” 버튼 클릭 (대화상자)
1_2) “새 기능 시작“ 버튼 클릭
1_3) 본인이 알아볼 수 있는 기능명(짧은) 입력
1_4) “확인“ 버튼 클릭
1_5) 좌측에 새 브랜치가 생성된걸 볼 수 있다
1_6) “로그 / 히스토리” 에서 헤더의 위치를 확인할
수 있다
1_7) 데모
1
2
3
4
5
6
21. 2) 기능 마무리
2_1) 작업을 완료 했다는 전제
2_2) “깃 플로우…” 버튼 클릭 (대화상자)
2_3) “기능 마무리“ 버튼 클릭
2_4) “확인“ 버튼으로 마무리
2_5) 데모
2
3
4
22. 1) 시나리오1
1_1) “가“ 군 혼자 작업
1_2) “가” 군이 “A” PC 에서 작업 후 “원격 저장소”에 “Push”
1_2) “가” 군이 “B” PC 에서 “원격 저장소”에서 “Clone” 하고 난 후 작업
2) 시나리오2
2_1) “가” 와 “나” 군이 동시에 작업
2_2) “가” 군이 작업 중 “나“ 군이 “원격 저장소”에 “Push”
2_3) “가” 군이 “Fetch”
2_4) “원격 저장소”에 변경사항이 있음
2_5) 로컬 저장소에 병합
2_6) “원격 저장소”에 “Push”
23. 3) 시나리오3
3_1) “가“ 군 혼자 작업
3_2) “가” 군이 “develop” 브랜치에서 “job01” 브랜치를 생성해서 작업중
3_3) “job01” 브랜치에서 작업중 다른 작업 요청
3_4) “job01” 브랜치에서 작업을 중지하고 “커밋“
3_5) “develop” 브랜치로 체크아웃을 하고 “job02” 브랜치 생성
3_6) “job02” 에서 작업 완료 후 “커밋”, “기능마무리“를 통해 “develop”
브랜치로 병합
3_7) “리모트 저장소”로 “Push”
3_8) “job01” 브랜치로 체크아웃 “job01” 브랜치에서 “develop” 브랜치를 병합
3_9) “job01” 작업 완료 후 “커밋“
3_10) “기능마무리”를 통해 “develop” 브랜치로 병합
3_11) “리모트 저장소”로 “Push”
4) 시나리오 4
* 2) 와 3) 시나리오의 혼합