├── .gitignore
├── README.md
├── handouts
├── 01-shell-vim-for-git.md
├── 01-shell-vim-for-git.pdf
├── 02-git-start.md
├── 02-git-start.pdf
├── 03-cowork-with-git.md
├── 03-cowork-with-git.pdf
└── README.md
├── img
├── addrmorigin.png
├── collaborators.png
├── fork1.png
├── fork2.png
├── fork3.png
├── issue1.png
├── issue2.png
├── issue3.png
├── pr1.png
├── pr2.png
├── pr3.png
├── pr4.png
├── pr5.png
├── pr6.png
├── pr7.png
├── projects1.png
├── star.png
├── thankforme.jpg
└── watch.png
└── resources
└── fizzbuzz.py
/.gitignore:
--------------------------------------------------------------------------------
1 | # Custom
2 | .hidden/*
3 | .DS_Store
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Essential git
2 |
3 | ## Blog post
4 |
5 | https://ulgoon.github.io/2019/09/09/01-git-first/
6 |
7 | https://ulgoon.github.io/2019/09/10/02-git-alone/
8 |
9 | ### Index
10 |
11 | - ch01. tools for git
12 |
13 | - ch02. add, commit, push
14 |
15 | - ch03. clone, pull, fetch
16 |
17 | - ch04. branch
18 |
19 | - ch05. collaborate with git
20 |
21 | ### asciinema
22 |
23 | https://asciinema.org/a/QmgWXWwf8VhBfS0pF7jxrCv8Y
24 |
25 | https://asciinema.org/a/207171
26 |
27 | ### Timestamp
28 | - 200504: bottle
29 |
--------------------------------------------------------------------------------
/handouts/01-shell-vim-for-git.md:
--------------------------------------------------------------------------------
1 | ---
2 | marp: true
3 | ---
4 |
5 |
6 | # Shell, vim command for git
7 |
8 | ## Fastcampus Programming SCHOOL
9 |
10 | ---
11 |
12 |
18 |
19 | ## 최우영
20 |
21 | - Co-founder, CTO(disceptio)
22 | - Solution Architect, Web Developer, Instructor
23 | - Skills: Python, Golang, Julia, Node.js, Google tag manager ...
24 |
25 | ### Contacts
26 |
27 | 1. blog: https://ulgoon.github.io/
28 | 2. github: https://github.com/ulgoon/
29 | 3. email: me@ulgoon.com
30 | 4. discord: @ulgoon
31 |
32 | ---
33 |
34 | ## Introduce
35 |
36 | ---
37 |
38 | ## Goal(1)
39 |
40 | - Linux의 역사를 이해한다
41 | - CLI에 대한 공포를 극복하고 Shell과 친구가 된다
42 | - Linux Shell 커맨드를 학습하여 능숙하게 이를 활용할 수 있다
43 | - Vim 텍스트 에디터를 이용하여 커밋메시지를 작성하고, 파일 수정을 할 수 있다
44 |
45 | ---
46 |
47 | ## Goal(2)
48 |
49 | - git을 이해하고, git과 github이 다름을 인지한다
50 | - git을 활용하여 나의 소스코드를 관리할 수 있다
51 | - 나의 커리어를 Swag 할 수 있는 블로그를 git을 활용하여 관리할 수 있다.
52 | - git의 branch model을 활용해 능숙하게 코드관리할 수 있다
53 | - git으로 타인과 협업하며, 다른 프로젝트에 기여할 수 있다
54 |
55 | ---
56 |
57 | ## Contents
58 |
59 | - Introduction to Linux, Shell
60 | - Shell commands
61 | - Vim commands
62 |
63 | ---
64 |
65 | ## Before Linux(1)
66 |
67 | 
68 |
69 | - 1965년 데니스 리치, 켄 톰슨 외 x명이 AT&T Bell 연구소에서 PDP-7 기반 어셈블리어로 작성한 UNIX를 개발
70 |
71 | ---
72 |
73 | ## Before Linux(2)
74 |
75 | 
76 |
77 | - 1973년 데니스 리치와 켄 톰슨이 C를 개발한 뒤, C 기반 UNIX 재작성
78 |
79 | ---
80 |
81 | ## Before Linux(3)
82 |
83 | 
84 | - 1984년 리차드 스톨먼이 오픈 소프트웨어 자유성 확보를 위한 GNU 프로젝트 돌입
85 |
86 | ---
87 |
88 | ### Meaning of GNU
89 |
90 | GNU == `G`NU is `N`ot `U`nix
91 |
92 | ---
93 |
94 | ## Before Linux(4)
95 |
96 | 
97 |
98 | - But, GNU 프로젝트에는 커널이 없었고..
99 |
100 | ---
101 |
102 | ### Kernel
103 |
104 | 
105 |
106 | - 하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 시스템소프트웨어
107 |
108 | ---
109 |
110 | ## Linus Torvalds
111 |
112 | https://www.youtube.com/embed/IVpOyKCNZYw
113 |
114 | - 헬싱키 대학생이던 리누스 토발즈는 앤디 타넨바움의 MINIX를 개조한 Linux를 발표
115 | - 0.1 - bash(GNU Bourne Again SHell), gcc(UNIX 기반 C 컴파일러)
116 |
117 | ---
118 |
119 | ## Linux
120 |
121 | - 리누스 토발즈가 작성한 커널 혹은 GNU 프로젝트의 라이브러리와 도구가 포함된 운영체제
122 | - PC와 모바일, 서버, 임베디드 시스템 등 다양한 분야에서 활용
123 | - Redhat, Debian, Ubuntu, Android 등 다양한 배포판이 존재
124 |
125 | ---
126 |
127 | ## Shell
128 |
129 | - 운영체제의 커널과 사용자를 이어주는 소프트웨어
130 |
131 | - sh(Bourne Shell): AT&T Bell 연구소의 Steve Bourne이 작성한 유닉스 쉘
132 | - csh: 버클리의 Bill Joy가 작성한 유닉스 쉘(C언어랑 비슷한 모양)
133 | - bash(Bourne Again Shell): Brian Fox가 작성한 유닉스 쉘
134 | - 다양한 운영체제에서 기본 쉘로 채택
135 | - zsh: Paul Falstad가 작성한 유닉스 쉘
136 | - sh 확장형 쉘
137 | - 현재까지 가장 완벽한 쉘
138 |
139 | ---
140 |
141 | ## Let's learn bash
142 |
143 | ---
144 |
145 | ## Shell Command Basic(1)
146 |
147 | ```shell
148 | $ cd documents
149 |
150 | $ mkdir dev # - make directory dev
151 | $ cd dev # - change directory
152 | $ cd .. # - go up
153 | $ pwd # - print working directory
154 |
155 | $ ls
156 | $ ls -al
157 |
158 | $ touch hello.py # - create hello.py
159 | $ exit # - terminate shell
160 | ```
161 |
162 | ---
163 |
164 | ## chmod
165 |
166 | > 파일의 권한을 설정할 때 사용
167 |
168 | `drwxr-xr-x`
169 | `d` or `-`: directory or file
170 | (user)(group)(other)
171 | `r`: read
172 | `w`: write
173 | `x`: execute
174 | `-`: no permission
175 |
176 | ---
177 |
178 | ## chmod
179 |
180 | `$ chmod [옵션] (8진수) (파일명)`
181 | 8진수
182 | 0: 000
183 | 1: 001
184 | 2: 010
185 | 3: 011
186 | 4: 100
187 | 5: 101
188 | 6: 110
189 | 7: 111
190 |
191 | ---
192 |
193 | ## Shell Command Basic(2)
194 |
195 | ```shell
196 | $ mv hello.py dev
197 | $ cp hello.py dev
198 |
199 | $ rm hello.py
200 | $ rm -rf dev/
201 |
202 | $ cat README.md
203 | $ head README.md
204 | $ tail -20 README.md
205 | $ cat README.md > README.txt
206 | $ open README.md # use explorer instead open on windows
207 | ```
208 |
209 | ---
210 |
211 | ## Vim
212 |
213 | 
214 |
215 | ---
216 |
217 | # TODO
218 |
219 | 1. documents/dev에서 fastcampus 디렉토리를 만듭니다
220 | 2. 새파일 index.html을 만들어주세요
221 | 3. vim으로 내부 작업을 한뒤 저장하여 cat 명령어로 저장을 확인합니다.
222 | 4. index.html을 style.css로 이름을 변경합니다.
223 |
224 | ---
225 |
226 | 
227 |
228 | ---
229 |
230 | ## Vim Basic
231 |
232 | `h,j,k,l - move cursor`
233 | `i - insert mode`
234 | `v - visual mode`
235 | `d - delete`
236 | `y - yank`
237 | `p - paste`
238 | `u - undo`
239 | `r - replace`
240 | `$ - move end of line`
241 | `^ - move start of line`
242 | `:q - quit`
243 | `:q! - quit w/o write(no warning)`
244 | `:wq - write and quit`
245 | `:{number} - move to {number}th line`
246 |
247 | ---
248 |
249 | ### write `hello.py` with Vim
250 |
251 | `$ vim`
252 | `$ vim hello.py`
253 |
254 | `i`
255 | `-- insert --`
256 | type `print("hello python!")`
257 | press `esc` to escape
258 |
259 | `:wq`
260 |
261 | `$ python hello.py`
262 |
263 | ---
264 |
265 | ### copy & paste
266 |
267 | `$ vim hello.py`
268 |
269 | `v`
270 | `-- visual --`
271 | 블록지정 후 `y`
272 | `p`
273 |
274 | press `esc` to escape
275 | `:wq`
276 |
277 | `$ python hello.py`
278 |
279 | ---
280 |
281 | ### Use Vim in real world!
282 |
283 | - [vim advanture](https://vim-adventures.com/)
284 | - [vimium](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en)
285 | - [vs code vim](https://github.com/VSCodeVim/Vim)
286 |
287 |
288 |
289 |
290 |
--------------------------------------------------------------------------------
/handouts/01-shell-vim-for-git.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/handouts/01-shell-vim-for-git.pdf
--------------------------------------------------------------------------------
/handouts/02-git-start.md:
--------------------------------------------------------------------------------
1 | ---
2 | marp: true
3 | ---
4 |
5 |
6 | # git (1)
7 |
8 | ## Fastcampus Programming SCHOOL
9 |
10 | ---
11 |
12 |
18 |
19 | 
20 |
21 | ---
22 |
23 | ## VCS (Version Control System)
24 |
25 | == SCM (Source Code Management)
26 | < SCM (Software Configuration Management: 형상관리)
27 |
28 | ---
29 |
30 | ## chronicle of git
31 |
32 | 
33 |
34 | ---
35 |
36 | ## chronicle of git
37 |
38 | - Linux Kernal을 만들기 위해 Subversion을 쓰다 화가 난 리누스 토발즈는 2주만에 git이라는 버전관리 시스템을 만듦
39 | [git official repo](https://github.com/git/git)
40 |
41 | ---
42 |
43 | ## Characteristics of git
44 |
45 | - 빠른속도, 단순한 구조
46 | - 분산형 저장소 지원
47 | - 비선형적 개발(수천개의 브랜치) 가능
48 |
49 | ---
50 |
51 | ## Pros of git
52 |
53 | - **중간-발표자료_최종_진짜최종_15-4(교수님이 맘에들어함)_언제까지??_이걸로갑시다.ppt**
54 |
55 | - 소스코드 주고받기 없이 동시작업이 가능해져 생산성이 증가
56 | - 수정내용은 **commit** 단위로 관리, 배포 뿐 아니라 원하는 시점으로 **Checkout** 가능
57 | - 새로운 기능 추가는 **Branch**로 개발하여 편안한 실험이 가능하며, 성공적으로 개발이 완료되면 **Merge**하여 반영
58 | - 인터넷이 연결되지 않아도 개발할 수 있음
59 |
60 | ---
61 |
62 | ## git GUI Clients
63 |
64 | - git GUI
65 | - sourcetree
66 | - kraken
67 | - smartGit
68 |
69 | ---
70 |
71 | ## CLI first
72 |
73 | - Source code를 Cloud Platform에서 사용할 경우, CLI 커맨드로 버전관리를 수행해야 합니다.
74 | - CLI 커맨드로 git을 사용할 줄 알면, GUI 도구가 제공하는 기능에 대한 이해가 빠릅니다.
75 | - 확인용도로 GUI를 참고하는 것은 Good^^
76 |
77 | ---
78 |
79 | ## git objects
80 |
81 | - Blob: 파일 하나의 내용에 대한 정보
82 | - Tree: Blob이나 subtree의 메타데이터(디렉토리 위치, 속성, 이름 등)
83 | - Commit: 커밋 순간의 스냅샷
84 |
85 | ---
86 |
87 | ## git Process and Command
88 |
89 | 
90 |
91 | ---
92 |
93 | ## Useful package manager for mac
94 |
95 | http://brew.sh/index_ko.html
96 |
97 | ---
98 |
99 | ### install git
100 |
101 | - for windows
102 | https://gitforwindows.org/
103 |
104 | - for MacOS
105 | `$ brew install git`
106 | - for Ubuntu
107 | `$ sudo apt-get install git`
108 |
109 | `$ git --version` 으로 정상적으로 설치되었는지를 확인
110 |
111 | ### Optional
112 |
113 | - github CLI
114 | https://cli.github.com/
115 |
116 | ---
117 |
118 | ## git is not equal to github
119 |
120 | 
121 |
122 | ---
123 |
124 | ### sign up github
125 |
126 | https://github.com/
127 |
128 | **important!!**
129 |
130 | - 가입할 `email`과 `username`은 멋지게
131 | - ~~private repo를 원한다면 $7/month~~
132 |
133 | ---
134 |
135 | ## Useful blog post
136 | [https://ulgoon.github.io/2019/09/09/01-git-first/](https://ulgoon.github.io/2019/09/09/01-git-first/)
137 |
138 | ---
139 |
140 | ## Important github User Interface
141 |
142 | ---
143 |
144 | ### Star
145 |
146 | 
147 |
148 | ### watch
149 |
150 | 
151 |
152 | ---
153 |
154 | ## Set configuration
155 |
156 | terminal
157 |
158 | ```shell
159 | $ git config --global user.name "{github username}"
160 | $ git config --global user.email "{github email address}"
161 | $ git config --global core.editor "vim"
162 | $ git config --global core.pager "cat"
163 | $ git config --list
164 | ```
165 |
166 | - optional
167 | `$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"`
168 |
169 | ---
170 |
171 | ## My First Repo
172 |
173 | Let's make your first repo with github
174 |
175 | ---
176 | ## My First Repo(1)
177 |
178 | [Let's Create New repo](https://github.com/new)
179 |
180 | ---
181 |
182 | ## My First Repo(2)
183 |
184 | ```shell
185 | $ mkdir first-repo && cd first-repo
186 | $ git init
187 | $ git remote add origin https://github.com/{username}/{reponame}.git
188 | $ touch README.md
189 | $ git add README.md
190 | $ git commit -m "docs: Create README.md"
191 | $ git push -u origin master
192 | ```
193 |
194 | ---
195 |
196 | > Caution: Do not `git init` on any other directories
197 |
198 | ---
199 |
200 | ## Second push to My First Repo
201 |
202 | ```shell
203 | # make some change on README.md
204 | $ git add .
205 | $ git commit
206 | $ git push origin master
207 | ```
208 |
209 | ---
210 |
211 | ## Commit Convention
212 |
213 | - 커밋 제목은 50자 이내로 요약하여 작성한다
214 | - 제목과 내용사이 한 칸
215 | - prefix를 사용하여 한 눈에 커밋의 용도를 알기 쉽게 한다
216 |
217 | ```text
218 | feat: features
219 | docs: documentations
220 | conf: configurations
221 | test: test
222 | fix: bug-fix
223 | refactor: refactoring
224 | ci: Continuous Integration
225 | build: Build
226 | perf: Performance
227 | ```
228 |
229 | ---
230 |
231 | ### Commit Convention - example
232 |
233 | ```text
234 | feat: Create server.py to start flask project
235 | docs: Create README.md
236 | conf: poetry init
237 | test: User model CRUD test complete
238 | ```
239 |
240 | ---
241 |
242 | ## Start Project with `git clone`
243 |
244 | ---
245 |
246 | ## start project with clone
247 |
248 | - github에서 repo를 생성합니다.
249 |
250 | ```shell
251 | $ git clone {repo address}
252 | $ git add .
253 | $ git commit
254 | $ git push
255 | ```
256 |
257 | ---
258 |
259 | ## My First Github Pages
260 |
261 | github 저장소를 활용해 정적인 사이트 호스팅이 가능
262 |
263 | `username`.github.io
264 | http://tech.kakao.com/
265 | https://spoqa.github.io/
266 |
267 | ---
268 |
269 | ### sample index page
270 |
271 | After create new repo throuch github,
272 |
273 | `$ git clone https://github.com/username/username.github.io.git`
274 |
275 | Create New file `index.html`
276 |
277 | `$ git add .`
278 | `$ git commit -m "first page"`
279 | `$ git push origin master`
280 |
281 | ---
282 |
283 | ### sample index page
284 |
285 | ```html
286 |
287 |
288 |
289 |
290 | My first gh page
291 |
292 |
293 | Home
294 | Hello, there!
295 |
296 |
297 | ```
298 |
299 | ---
300 |
301 | ### Static Site Generator
302 |
303 | - [Jekyll](https://jekyllrb.com/): Ruby 기반 정적인 블로그 생성기
304 | - 설치와 사용이 쉬움
305 | - 사용자가 많았음
306 | - [Hugo](https://gohugo.io/): Golang 기반 정적인 블로그 생성기
307 | - 빠른 속도로 사이트를 생성
308 | - 사용자 증가 중
309 | - [Hexo](https://hexo.io/): Node.js 기반 정적인 블로그 생성기
310 | - Node.js를 안다면 커스터마이즈가 쉬움
311 | - 빠른 속도로 사용자 증가 중
312 |
313 | **Recommand**
314 | `Hexo` > `Jekyll` > `Hugo`
315 |
316 | ---
317 |
318 | ## Let's use Hexo
319 |
320 | [](https://asciinema.org/a/233626)
321 |
322 | ---
323 |
324 | ### Requirements
325 |
326 | 1. git
327 | 2. node.js(https://nodejs.org/en/)
328 |
329 | `$ npm install -g hexo-cli`
330 |
331 | ---
332 |
333 | ## Init hexo project
334 |
335 | ```shell
336 | $ hexo init
337 | $ cd
338 | $ npm install
339 | ```
340 |
341 | ## clean && generate static files
342 |
343 | `$ hexo clean && hexo generate`
344 |
345 | ## Run hexo server
346 |
347 | `$ hexo server`
348 |
349 | ---
350 |
351 | ## deploy
352 |
353 | `$ npm install hexo-deployer-git --save`
354 |
355 | ```yaml
356 | deploy:
357 | type: git
358 | repo: branch: [branch] #published
359 | message:
360 | ```
361 |
362 | ---
363 |
364 | ## .gitignore and .gitattributes
365 |
366 | ### .gitignore: 특정파일 추적을 하고 싶지 않을 경우
367 |
368 | ```yaml
369 | *.java
370 | *.py[cod]
371 | ```
372 |
373 | ### .gitattributes: 파일단위, 디렉토리 별 다른 설정을 부여하고 싶을 경우
374 |
375 | ```yaml
376 | # Avoid conflicts in pbxproj files
377 | *.pbxproj binary merge=union
378 |
379 | # Always diff strings files as text
380 | *.strings text diff
381 | ```
382 |
383 | - reference: [https://thoughtbot.com/blog/xcode-and-git-bridging-the-gap](https://thoughtbot.com/blog/xcode-and-git-bridging-the-gap)
384 |
385 |
386 |
387 |
388 |
--------------------------------------------------------------------------------
/handouts/02-git-start.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/handouts/02-git-start.pdf
--------------------------------------------------------------------------------
/handouts/03-cowork-with-git.md:
--------------------------------------------------------------------------------
1 | ---
2 | marp: true
3 | ---
4 |
5 |
6 | # git (2)
7 |
8 | ## Fastcampus Programming SCHOOL
9 |
10 | ---
11 |
12 |
18 |
19 | ## Branch
20 |
21 | ---
22 |
23 | ## What is branch?
24 |
25 | ---
26 |
27 | ## What is branch?(1)
28 |
29 | 
30 |
31 | ---
32 |
33 | ## What is branch?(2)
34 |
35 | 분기점을 생성하고 독립적으로 코드를 변경할 수 있도록 도와주는 모델
36 |
37 | ex)
38 |
39 | master branch
40 |
41 | ```python
42 | print('hello world!')
43 | ```
44 |
45 | another branch
46 |
47 | ```python
48 | for i in range(1,10):
49 | print('hello world for the %s times!' % i)
50 | ```
51 |
52 | ---
53 |
54 | ## Branch(1)
55 |
56 | Show available local branch
57 | `$ git branch`
58 |
59 | Show available remote branch
60 | `$ git branch -r`
61 |
62 | Show available All branch
63 | `$ git branch -a`
64 |
65 | ---
66 |
67 | ## Branch(2)
68 |
69 | Create branch
70 | `$ git branch stem`
71 |
72 | Checkout branch
73 | `$ git checkout stem`
74 |
75 | Create & Checkout branch
76 | `$ git checkout -b new-stem`
77 |
78 | make changes inside readme.md
79 | `$ git commit -a -m 'edit readme.md'`
80 | `$ git checkout master`
81 |
82 | merge branch
83 | `$ git merge stem`
84 |
85 | ---
86 |
87 | ## Branch(3)
88 |
89 | delete branch
90 | `$ git branch -D stem`
91 |
92 | push with specified remote branch
93 | `$ git push origin stem`
94 |
95 | see the difference between two branches
96 | `$ git diff master stem`
97 |
98 | ---
99 |
100 | ## Branch asciinema
101 |
102 | [](https://asciinema.org/a/qRmUXvtrkXS6Y09H9TM1hVAhT)
103 |
104 | ---
105 |
106 | ## branching models
107 |
108 | - git flow
109 | - (hotfix)- `master` -(release)- `develop` - feature
110 | - pros: 가장 많이 적용, 각 단계가 명확히 구분
111 | - cons: 복잡..
112 | - github flow
113 | - `master` - feature
114 | - pros: 브랜치 모델 단순화, `master`의 모든 커밋은 deployable
115 | - cons: CI 의존성 높음. 누구 하나라도 실수했다간..(pull request로 방지)
116 | - gitlab flow
117 | - `production` - `pre-production` - `master` - feature
118 | - pros: deploy, issue에 대한 대응이 가능하도록 보완
119 | - cons: git flow와 반대 (`master`-develop, `production`-master)
120 |
121 | ---
122 |
123 | ## git flow strategy
124 |
125 | 
126 |
127 | ---
128 |
129 | ## use git flow easily!
130 |
131 | [Link](https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html)
132 |
133 | 
134 |
135 | ---
136 |
137 | ## Collaborate with your Co-worker
138 |
139 | ---
140 |
141 | ## Method 1: Collaboration
142 |
143 | Add Collaborator
144 | 
145 |
146 | ---
147 |
148 | ## Collaboration
149 |
150 | Add, Commit and Push like you own it.
151 |
152 | ---
153 |
154 | ## Method 2: Fork and Merge
155 |
156 | 
157 |
158 | ---
159 |
160 | ## Fork and Merge
161 |
162 | 
163 |
164 | ---
165 |
166 | ## Fork and Merge
167 |
168 | 
169 |
170 | ---
171 |
172 | ## Fork and Merge
173 |
174 | `$ git clone https://github.com/username/forked-repo.git`
175 |
176 | ---
177 |
178 | ## Fork and Merge
179 |
180 | `$ git branch -a`
181 | `$ git checkout -b new-feature`
182 |
183 | ---
184 |
185 | ## Fork and Merge
186 |
187 | Make some change
188 |
189 | `$ git add file`
190 | `$ git commit -m "commit message"`
191 | `$ git push origin new-feature`
192 |
193 | ---
194 |
195 | ## Fork and Merge
196 |
197 | 
198 |
199 | ---
200 |
201 | ## Fork and Merge
202 |
203 | 
204 |
205 | ---
206 |
207 | ## Fork and Merge
208 |
209 | 
210 |
211 | ---
212 |
213 | ## Fork and Merge
214 |
215 | 
216 |
217 | ---
218 |
219 | ## Fork and Merge
220 |
221 | 
222 |
223 | ---
224 |
225 | ## Fork and Merge
226 |
227 | 
228 |
229 | ---
230 |
231 | ## Fork and Merge
232 |
233 | 
234 |
235 | ---
236 |
237 | 1. 팀장이 자기 소유의 repo를 만든다
238 | 2. clone 하여 약간의 작업 후 add, commit, push
239 | 3. notice 받은 팀원은 fork 하여 자신의 소유가 된 repo를 clone
240 | 4. 작업할 내용을 미리 issue 등록
241 | 4-1. or 팀장이 강제 issue 생성 후 작업지시
242 | 5. `$ git remote add pmorigin {pm의 repo 주소}` 하여 미리 등록
243 | 6. feature branch 생성 후 작업, add, commit(with issue no)
244 | 7. master로 merge 한 후, 나의 master로 push
245 | 8. pull request 생성
246 | 9. 팀장은 확인 후 merge(conflict, file change 확인 필수)
247 |
248 | ---
249 |
250 | ## volvocars main page clone with git flow
251 |
252 | 1. role 분배(40분안에 클론하려면 어떻게 역할을 나눠야 할까)
253 | 2. 위의 과정 반복
254 |
255 | ---
256 |
257 | ## continuous pull
258 |
259 | ---
260 |
261 | ## continuous pull
262 |
263 | `$ git remote add upstream https://github.com/anotheruser/original-repo.git`
264 |
265 | `$ git fetch upstream`
266 | `$ git merge upstream/master`
267 |
268 | ---
269 |
270 | ## How to move files
271 |
272 | ### Don't
273 |
274 | ```shell
275 | $ mv style.css static/css
276 | ```
277 | -> deleted:
278 | -> untracked files:
279 |
280 | ### Do
281 |
282 | ```shell
283 | $ git mv style.css static/css
284 | ```
285 | -> renamed:
286 |
287 | ---
288 |
289 | ## Issue & Projects
290 |
291 | Issue: 프로젝트, 레포와 관계된 모든 해야할 일과 버그, 개선사항 등을 기록
292 |
293 | Projects: 해야할 일의 진도에 따른 구성과 우선순위 지정
294 |
295 | ---
296 |
297 | ### Issue(1)
298 |
299 | 
300 |
301 | ---
302 |
303 | ### Issue(2)
304 |
305 | 
306 |
307 | ---
308 |
309 | ### Issue(3-1)
310 |
311 | 
312 |
313 | ---
314 |
315 | ### Issue(3-2)
316 |
317 | - Assignees: 이 이슈에 대한 책임인원
318 | - Labels: 이슈의 종류
319 | - Projects: 이슈를 배당할 프로젝트
320 | - Milestone: 이슈에 해당하는 중요 시점 지정
321 |
322 | ---
323 |
324 | ### Projects
325 |
326 | ---
327 |
328 | ### Projects(2)
329 |
330 | 
331 |
332 |
333 |
334 |
335 |
--------------------------------------------------------------------------------
/handouts/03-cowork-with-git.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/handouts/03-cowork-with-git.pdf
--------------------------------------------------------------------------------
/handouts/README.md:
--------------------------------------------------------------------------------
1 | # Essential git
2 |
3 | ## git practice repository for all
4 |
5 | ### Index
6 |
7 | TODO: list item, img, link
8 |
9 | - Item 1
10 | - Item 2
11 |
12 | 1. Ordered Item 1
13 | 2. Ordered Item 2
14 | 3. Ordered Item 3
15 |
16 | ## Requirements
17 |
18 | - Python
19 | - node.js
20 | - express
21 | - react.js
22 |
23 | ### Images
24 |
25 | 
26 |
27 | `
`
28 |
29 | ### Links
30 |
31 | [Go to google](https://www.google.com)
32 |
33 | `Go to google`
34 |
35 |
44 |
--------------------------------------------------------------------------------
/img/addrmorigin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/addrmorigin.png
--------------------------------------------------------------------------------
/img/collaborators.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/collaborators.png
--------------------------------------------------------------------------------
/img/fork1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/fork1.png
--------------------------------------------------------------------------------
/img/fork2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/fork2.png
--------------------------------------------------------------------------------
/img/fork3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/fork3.png
--------------------------------------------------------------------------------
/img/issue1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/issue1.png
--------------------------------------------------------------------------------
/img/issue2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/issue2.png
--------------------------------------------------------------------------------
/img/issue3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/issue3.png
--------------------------------------------------------------------------------
/img/pr1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/pr1.png
--------------------------------------------------------------------------------
/img/pr2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/pr2.png
--------------------------------------------------------------------------------
/img/pr3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/pr3.png
--------------------------------------------------------------------------------
/img/pr4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/pr4.png
--------------------------------------------------------------------------------
/img/pr5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/pr5.png
--------------------------------------------------------------------------------
/img/pr6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/pr6.png
--------------------------------------------------------------------------------
/img/pr7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/pr7.png
--------------------------------------------------------------------------------
/img/projects1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/projects1.png
--------------------------------------------------------------------------------
/img/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/star.png
--------------------------------------------------------------------------------
/img/thankforme.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/thankforme.jpg
--------------------------------------------------------------------------------
/img/watch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ulgoon/essential-git/ed480734ce8582645b1f1e05634c6538f86c19ff/img/watch.png
--------------------------------------------------------------------------------
/resources/fizzbuzz.py:
--------------------------------------------------------------------------------
1 | print([i for i in range(1,100+1)])
2 |
--------------------------------------------------------------------------------