forked from hyunjun/bookmarks
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgit.md
More file actions
1488 lines (1458 loc) · 167 KB
/
Copy pathgit.md
File metadata and controls
1488 lines (1458 loc) · 167 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Git
===
* [**깃허브(GitHub)란?**](https://www.44bits.io/ko/keyword/github)
* [practice - installation](https://gist.github.com/hyunjun/5b3124a6110d5198e8cc)
* [The Architecture and History of Git: A Distributed Version Control System](https://medium.com/@willhayjr/the-architecture-and-history-of-git-a-distributed-version-control-system-62b17dd37742)
* [(비개발자를 위한) GitHub의 역사와 기능 | 요즘IT](https://yozm.wishket.com/magazine/detail/1674/)
* [GitHub Engineering](http://githubengineering.com/)
* [git-tower.com/learn/git/videos](http://www.git-tower.com/learn/git/videos#episodes)
* [Git, GitHub, SSH 이용한 완벽한 작업흐름](http://code.tutsplus.com/ko/tutorials/the-perfect-workflow-with-git-github-and-ssh--net-19564)
* [A Visual Git Reference](http://marklodato.github.io/visual-git-guide/index-ko.html)
* [**Git cheatsheet**](https://ndpsoftware.com/git-cheatsheet.html) stash, workspace, index, local repo, upstream repo 간의 이동을 visual로 보여줘서 (여전히 어렵지만) 정말 보기 좋음
* [Visualizing Git Concepts with D3](http://onlywei.github.io/explain-git-with-d3)
* Git 기본 명령들이 어떻게 동작하는지를 D3와 SVG를 이용한 애니메이션으로 설명
* commit / branch / checkout / reset / revert / merge / rebase / fetch / pull / push / tag
* → 파일을 추가/스테이징 하는 부분은 생략
* 특정 실제 시나리오 몇개
* → 로컬 브랜치를 오리진으로 리스토어 하기
* → 프라이빗 로컬 브랜치를 오리진 최신본으로 업데이트 : git fetch & rebase
* → 로컬 브랜치 삭제하기
* [Explain Git with D3](https://onlywei.github.io/explain-git-with-d3/)
* [git - 간편 안내서](https://rogerdudler.github.io/git-guide/index.ko.html)
* [Git / GitHub 안내서](https://subicura.com/git/)
* [Git 분산버전 관리시스템](https://www.gitbook.com/book/mylko72/git/details)
* [Introduction to Git - Core Concepts - YouTube](https://www.youtube.com/watch?v=uR6G2v_WsRA)
* [Introduction to Git - Branching and Merging - YouTube](https://www.youtube.com/watch?v=FyAAIHHClqI)
* [Introduction to Git - Remotes - YouTube](https://www.youtube.com/watch?v=Gg4bLk8cGNo)
* [Git과 Github | Hohyeon Moon](https://www.hohyeonmoon.com/blog/swift-git-github/)
* [Comprehensive Guide to GitHub for Data Scientists | by Vatsal | Towards Data Science](https://towardsdatascience.com/comprehensive-guide-to-github-for-data-scientist-d3f71bd320da)
* [The Universe of Discourse : Things I wish everyone knew about Git (Part I)](https://blog.plover.com/prog/git/tips.html)
* [Git Large File Storage](https://git-lfs.github.com/)
* [Git extension for versioning large files](https://github.com/github/git-lfs)
* [Git Large File Storage v1.0](https://github.com/blog/2069-git-large-file-storage-v1-0)
* [Git in six hundred words](http://maryrosecook.com/blog/post/git-in-six-hundred-words)
* [Git from the inside out](http://maryrosecook.com/blog/post/git-from-the-inside-out)
* [Git from the inside out](https://codewords.recurse.com/issues/two/git-from-the-inside-out)
* [12가지 명령어로 배우는 Git](https://www.youtube.com/playlist?list=PLcqDmjxt30RvjqpIBi4mtkK5LkzYtXluF)
* [나를 구원해줄 그 분은 바로 git. 그리고 github](http://blog.puding.kr/187)
* [Deploying branches to GitHub.com](http://githubengineering.com/deploying-branches-to-github-com/)
* [databranches: using git as a database](https://joeyh.name/blog/entry/databranches/)
* [A statistician's initial experiences of Git/GitHub](http://thestatsgeek.com/2015/05/16/a-statisticians-initial-experiences-of-gitgithub/)
* [Git Cheat Sheets](https://services.github.com/on-demand/resources/cheatsheets/)
* [Git cheat sheet](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet)
* [git-cheat-sheet.pdf](https://jan-krueger.net/wordpress/wp-content/uploads/2007/09/git-cheat-sheet.pdf)
* [Git Ready: A Git Cheatsheet of Commands You Might Need Daily | by Yakko Majuri | The Startup | Aug, 2020 | Medium](https://medium.com/swlh/git-ready-a-git-cheatsheet-of-commands-you-might-need-daily-8f4bfb7b79cf)
* [Unpacking Git packfiles](https://codewords.recurse.com/issues/three/unpacking-git-packfiles/)
* [Scripts to Rule Them All](http://githubengineering.com/scripts-to-rule-them-all/)
* [Git as a Document Format](https://realm.io/news/altconf-wil-shipley-git-document-format/)
* [깃허브 페이지에 커스텀 도메인 연결하기](https://blog.rajephon.dev/2019/03/01/github-custom-domain-with-cloudflare/)
* [Sublime Text2와 Gist로 깔끔하게 code snippet을 사용해 봅시다](https://medium.com/@cookatrice/sublime-text2%EC%99%80-gist%EB%A1%9C-%EA%B9%94%EB%81%94%ED%95%98%EA%B2%8C-code-snippet%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4-%EB%B4%85%EC%8B%9C%EB%8B%A4-2518f23ce606)
* [Git가지고 놀기(1) - Sublime과 함께 사용하기. - 완두블로그](https://wani.kr/posts/2013/12/13/git-1-with-sublime/)
* [Facebook Gist Viewer](https://github.com/shlee322/facebook-gist-viewer)
* [Git from the bottom up](http://ftp.newartisans.com/pub/git.from.bottom.up.pdf)
* [Source Control Solutions](http://blog.xojo.com/source-control-solutions)
* [How short can Git abbreviate?](http://blog.cuviper.com/2013/11/10/how-short-can-git-abbreviate/)
* [디자이너를위한Git #1/2](http://www.slideshare.net/nemofinder/git-git-hub-53514194)
* [04 Yong Seong Song -애저 웹앱을 사용하여 GIT을 활용한 게임 리소스 관리하기](https://channel9.msdn.com/Events/APAC-Influencer-Hero-2015/Korea-Influencer-Showcase/04-Yong-Seong-Song-Game-Development-by-GIT/)
* [Git 더하기 GitHub](http://www.slideshare.net/ssusercef361/git-github-62006866)
* [GitHub에서 커밋에 서명하기](https://blog.outsider.ne.kr/1209?category=18)
* [윈도우버전 Git설치하기 (Git for Windows)](https://coding-factory.tistory.com/245)
* [자바 기반의 GIT 관리 서버 (Windows GIT 서버 구축)](https://gs.saro.me/#!m=elec&jn=714)
* [Git 100% 활용하기: 협업을 위한 브랜치 전략, 팁과 노하우](https://realm.io/kr/news/360andev-savvas-dalkitsis-using-git-like-a-pro/)
* [🐙 Github에서 협업하는 방법](https://velog.io/@cos/Github%EC%97%90%EC%84%9C-%ED%98%91%EC%97%85%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95)
* Git 내부 구조를 알아보자
* [(0) — 프로젝트 소개와 예고](https://medium.com/happyprogrammer-in-jeju/git-%EB%82%B4%EB%B6%80-%EA%B5%AC%EC%A1%B0%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-0-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%86%8C%EA%B0%9C%EC%99%80-%EC%98%88%EA%B3%A0-bf3a8549f439)
* [(1) — 기본 오브젝트](https://medium.com/happyprogrammer-in-jeju/git-%EB%82%B4%EB%B6%80-%EA%B5%AC%EC%A1%B0%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-1-%EA%B8%B0%EB%B3%B8-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-81b34f85fe53)
* [Git for Computer Scientists](https://eagain.net/articles/git-for-computer-scientists/) Quick introduction to git internals
* [CLI 환경에서 소스 코드 버전 관리하기 - 임창수 블로그](https://markruler.github.io/posts/shell/git-commands/)
* [Git from the Bottom Up](https://jwiegley.github.io/git-from-the-bottom-up/)
* [gitlet.js - how Git works under the covers](http://gitlet.maryrosecook.com/docs/gitlet.html)
* GitHub로 프로젝트 관리하기
* [Part1 - 이슈 발급 부터 코드리뷰까지](https://www.popit.kr/github%EB%A1%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-part1-%EC%9D%B4%EC%8A%88-%EB%B0%9C%EA%B8%89-%EB%B6%80%ED%84%B0-%EC%BD%94%EB%93%9C%EB%A6%AC%EB%B7%B0%EA%B9%8C/)
* [Part2 - CI & Test Coverage & Wiki](https://www.popit.kr/github%EB%A1%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-part2-ci-test-coverage-wiki/)
* [Part3 - ZenHub 사용법](https://www.popit.kr/github%EB%A1%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-part3-zenhub-%EC%82%AC%EC%9A%A9%EB%B2%95/)
* [GitHub Repo 에 Travis CI 추가하기](http://inspiredjw.com/entry/GitHub-Repo-%EC%97%90-Travis-CI-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0)
* [About Travis CI](https://medium.com/@yoonjs2/about-travis-ci-65b04d3dead6)
* [Travis CI flaw exposed secrets of thousands of open source projects | Ars Technica](https://arstechnica.com/information-technology/2021/09/travis-ci-flaw-exposed-secrets-for-thousands-of-open-source-projects/)
* Travis CI가 9월 3일부터 9월 10일까지 Trvis CI를 사용하는 GitHub 저장소에서 Pull Request 빌드에 모든 시크릿 환경변수(서명 키, 접근 인증서, API 토큰 등 포함)를 주입하는 보안 사고
* 보통 저장소에서 CI 빌드를 할 때 필요한 시크릿을 설정해서 사용하지만 어떤 악의적인 코드가 포함될지 모르는 Pull Request를 빌드할 때는 이러한 시크릿을 추가하지 않기 때문에 시크릿이 Pull Request에 노출되었다는 것은 외부에 유출되었을 가능성이 있다는 의미
* Travis CI에서 시크릿을 쓰고 있다면 키 갱신 필요
* [Travis Continuous deployment for your open source library](https://leobenkel.com/2019/09/travis-continuous-deployment/)
* [Travis에서 조금 더 괜찮은 방법으로 .env 다루기 | 강준영 기술 블로그](https://juneyoung.io/devops-better-way-to-handle-env-in-travis-210308)
* [알아두면 좋은 GIT 꿀팁 3개](https://brunch.co.kr/@sydneyitguy/5)
* [Top 10 Free GitHub Alternatives for Private Repositories](http://toppersworld.com/top-10-free-github-alternatives-for-private-repositories/)
* [**오픈소스 일기: GIT 그리고 저장소 다루기**](https://medium.com/@yoonjs2/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%9D%BC%EA%B8%B0-git-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%8B%A4%EB%A3%A8%EA%B8%B0-9f66c98c1cb5)
* [GitHub말고 프라이빗 Git 서버 만들기 #yona - YouTube](https://www.youtube.com/watch?v=fj7mj_7tJJU)
* [비번 없이 서버, github 이용하기](https://www.youtube.com/watch?v=NlxKAHsKLpc)
* [케빈 TV S02E08 - Git 활용 및 GitHub와 GitLab 같이 쓰기 (2016-10-09)](https://www.youtube.com/watch?v=1uOYVKXq4ws)
* [zerocho.com/category/Git](https://www.zerocho.com/category/Git)
* [디자이너를 위한 Git 사용법](https://brunch.co.kr/@ultra0034/55)
* [git을 sql로 확인하기~ 막일을 줄이기 위한 유용한 팁 3](http://www.popit.kr/gitql/)
* [Circle CI에서 python 3.6.0을 사용하는 법](https://twpower.github.io/circle/ci/2017/01/13/6.html)
* [GitHub 실습 교육](http://www.slideshare.net/flyskykr/github-46014813)
* [Git “Back to the Future”](http://www.popit.kr/%EA%B0%9C%EB%B0%9C%EB%B0%94%EB%B3%B4%EB%93%A4-git-back-to-the-future/)
* [스타트업에서 개발 문화 만들기 (아직 진행중..)](https://brunch.co.kr/@kiyoungleefige/2)
* [Git repository for designers as you’ve never seen: Abstract (+ Sketch)](https://blog.prototypr.io/git-repository-for-designers-abstract-sketch-9138cf6ab9b1)
* Gerrit을 이용한 코드 리뷰 시스템
* [Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰와 Gerrit](https://d2.naver.com/helloworld/6033708)
* [Gerrit과 Git](http://d2.naver.com/helloworld/1859580)
* [코드 리뷰 시스템 설치](http://d2.naver.com/helloworld/6236097)
* [#gerrit #codereview 사용 소감](http://ohyecloudy.com/pnotes/archives/gerrit-code-review-2014-01-2017-03/)
* [나의 Gerrit FAQ](http://sunphiz.me/wp/archives/2312)
* [인증 환경 설정](http://d2.naver.com/helloworld/1577518)
* [사용자 권한 관리(1)](http://d2.naver.com/helloworld/1419134)
* [사용자 환경 설정](http://d2.naver.com/helloworld/2930540)
* [코드 리뷰 방법(1)](http://d2.naver.com/helloworld/2882112)
* [코드 리뷰 방법(2)](http://d2.naver.com/helloworld/9767525)
* [CI 연동, SVN 마이그레이션](http://d2.naver.com/helloworld/6952033)
* [gerrit query로 리뷰 데이터 추출하기](http://sunphiz.me/wp/archives/3262)
* [Gerrit Code Review 도입하기 | Hyperconnect Tech Blog](https://hyperconnect.github.io/2022/02/28/gerrit-code-review-introduction.html)
* [How To Install Gerrit on an Ec2 Ubuntu | by S3CloudHub | Jun, 2022 | Medium](https://s3cloudhub.medium.com/how-to-install-gerrit-on-an-ec2-ubuntu-7b526f153d9b)
* [GitHub으로 협업하기: 클론부터 코드 리뷰까지 | ~/xo.dev](https://xo.dev/github-collaboration-guide/)
* [GitHub Branch Lock and Automated code reviewer | GitHub Branch Policy | CODEOWNER - YouTube](https://www.youtube.com/watch?v=CXgNd3hketM)
* [주기적으로 git 저장소에서 코드 가져오는 쉘](http://blog.doortts.com/281)
* [깃의 Detached HEAD](http://sunphiz.me/wp/archives/2266)
* [Git 커밋, 브랜치, HEAD의 관계는?](https://blog.naver.com/codeitofficial/221941216489)
* [Git and GitHub Integration comes to Atom](http://blog.atom.io/2017/05/16/git-and-github-integration-comes-to-atom.html)
* [GitHub을 이용한 셀프 브랜딩](https://news.realm.io/kr/news/github-self-branding/)
* [**#gdc13 #review Working Together: Solutions for Collaborative Asset Creation**](http://ohyecloudy.com/pnotes/archives/gdc13-working-together-solutions-for-collaborative-asset-creation/)
* [드디어 보이는 Git의 미래](https://www.youtube.com/watch?v=I6SiIXDzhHA)
* [Git at Scale](https://www.visualstudio.com/learn/git-at-scale/)
* [Using BFG Repo Cleaner tool to remove sensitive files from your git repo](https://github.com/IBM/BluePic/wiki/Using-BFG-Repo-Cleaner-tool-to-remove-sensitive-files-from-your-git-repo)
* [회사에서 깃(Git)을 쓰고 싶어요](http://sunphiz.me/wp/archives/2436)
* [Habits maketh engineer — Git(hub) 습관이 엔지니어를 만든다 — Git(hub) 편](https://engineering.huiseoul.com/habits-maketh-engineer-git-hub-2017caf70c00)
* [Github 에코시스템 - Git을 둘러싼 유용한 서비스들](http://blog.nacyot.com/articles/2013-10-02-github-ecosystem/)
* [hub(허브)로 명령행에서 Github(깃허브) 풀리퀘스트 보내기](http://blog.nacyot.com/articles/2013-12-29-hub-and-pull-request/)
* [aws, github, 2FA 활성화나 수정 방법](https://charsyam.wordpress.com/2018/02/01/%ec%9e%85-%ec%83%9d%ed%99%9c-aws-github-2fa-%ed%99%9c%ec%84%b1%ed%99%94%eb%82%98-%ec%88%98%ec%a0%95-%eb%b0%a9%eb%b2%95/)
* [github : 유용한 기능들](https://ash84.net/2018/02/27/about-github/)
* [깃허브(GitHub)로 취업하기](https://sujinlee.me/professional-github/)
* [2 phase commit](https://blog.seulgi.kim/2018/05/two-phase-commit.html)
* [깃허브 및 관련 서비스 (2018-06-08) 시드니 개발자 아저씨 케빈의 개발자 방송 Live](https://www.youtube.com/watch?v=F2uUDeP2Xqs)
* [Github를 이용해서 Project Management 하는 방법 및 전체적인 프로세스에 대해서 정리](https://github.com/cheese10yun/github-project-management#ci--test-coverage)
* github 하나로 1인 개발 워크플로우 완성하기
* [이론 편 git으로 백업만 하셨던 분들 여기여기 붙어라~](https://www.huskyhoochu.com/issue-based-version-control-101)
* [실전 편 딱 일곱 단계로 끝장내는 이슈 기반 버전 관리](https://www.huskyhoochu.com/issue-based-version-control-201)
* [A brief history of code search at GitHub | The GitHub Blog](https://github.blog/2021-12-15-a-brief-history-of-code-search-at-github/)
* [Towards Natural Language Semantic Code Search](https://githubengineering.com/towards-natural-language-semantic-code-search/)
* [How To Create Natural Language Semantic Search For Arbitrary Objects With Deep Learning](https://towardsdatascience.com/semantic-code-search-3cd6d244a39c)
* [demo for Semantic Code Search](https://experiments.github.com/semantic-code-search)
* [Introducing an all-new code search and code browsing experience | GitHub Changelog](https://github.blog/changelog/2022-11-09-introducing-an-all-new-code-search-and-code-browsing-experience/)
* GitHub Universe에서 GitHub의 새 코드 검색과 코드 브라우징 기능 공개
* 코드 검색은 빠른 속도로 기존보다 훨씬 다양한 조건으로 검색 가능
* 코드 브라우징은 저장소에서 코드를 볼 때 마치 에디터처럼 트리 뷰로 파일을 탐색 가능
* 파일의 심볼도 분석, 바로 각 심볼로 이동하
* [Git 뽀개기(자료 모음집) (비)개발자들을 위한 Git과 Github 기초 자료 모음집입니다](https://seanlion.github.io/blog/23)
* [Version Control with Git: Git Cheatsheets for Quick Reference](https://swcarpentry.github.io/git-novice/reference)
* [Git으로 버전제어](https://statkclee.github.io/git-novice-kr/)
* [Git을 사용한 버젼 관리](http://statkclee.github.io/git-novice/index-kr.html)
* [Git을 이용한 더 나은 버전관리](https://speakerdeck.com/ibluemind/giteul-iyonghan-deo-naeun-beojeongwanri)
* [How not to be afraid of Git anymore](https://medium.freecodecamp.org/how-not-to-be-afraid-of-git-anymore-fe1da7415286)
* [깃(Git)은 뭐가 다른가?](https://tech.10000lab.xyz/git/how-git-is-different.html)
* [깃(Git) 용어 정리](https://tech.10000lab.xyz/git/important-git-terms.html)
* [깃(Git)과 함께 개발하기](https://tech.10000lab.xyz/git/using-git-as-you-work.html)
* [**깃(Git) 유용한 팁**](https://tech.10000lab.xyz/git/git-tips-you-need.html)
* [깃(Git) 필수 명령어](https://tech.10000lab.xyz/git/git-cheat-sheet.html)
* [가장 쉬운 Git 강좌 - (상) 혼자작업편](https://www.youtube.com/watch?v=FXDjmsiv8fI)
* [가장 쉬운 Git 강좌 - (하) Github편](https://www.youtube.com/watch?v=GaKjTjwcKQo)
* [주요 깃 서비스 비교](https://www.youtube.com/watch?v=a6h22u5r67M)
* [What not to save into a Git repository](https://medium.freecodecamp.org/what-not-to-save-into-a-git-repository-29779ee94b96)
* [Repository 언어 분석 설정 변경하기 :: 시행착오를 줄이는 방법](https://dataportal.kr/21)
* [How to use GitHub as a PyPi server](https://medium.freecodecamp.org/how-to-use-github-as-a-pypi-server-1c3b0d07db2)
* [The Biggest Misconception About Git](https://medium.com/@gohberg/the-biggest-misconception-about-git-b2f87d97ed52)
* [Picturing Git: Conceptions and Misconceptions - BiTE Interactive](https://www.biteinteractive.com/picturing-git-conceptions-and-misconceptions/)
* [The Google Doc of Coding: Git & GitHub](https://medium.freecodecamp.org/the-google-doc-of-coding-git-github-ec103e87926d)
* [How to be more productive on GitHub](https://medium.freecodecamp.org/how-to-be-more-productive-on-github-c3cedab043e3)
* [Mac OS X 터미널에서 Git 패스워드 기억하기](https://medium.com/happyprogrammer-in-jeju/mac-os-x-%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C-git-%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C-%EA%B8%B0%EC%96%B5%ED%95%98%EA%B8%B0-5675d58a60cd)
* [Mind your programming language](https://medium.freecodecamp.org/mind-your-programming-language-38e340a430a1) .gitattributes
* [The Essential Git Handbook](https://medium.freecodecamp.org/the-essential-git-handbook-a1cf77ed11b5)
* [깃허브 패키지 레지스트리 베타 발표 언어 별 패키지 매니저 지원 및 깃헙 권한으로 접근 제어 등](https://www.44bits.io/ko/post/news--announcing-github-package-registry)
* [깃허브 컨테이너 레지스트리(GitHub Container Registry) 베타 오픈 및 사용법 | 44BITS](https://www.44bits.io/ko/post/news--github-container-registry-beta-release)
* [GitHub Container Registry 사용하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1530)
* [GitHub Actions에서 GitHub Container Registry에 이미지 푸시하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1531)
* [**Git 계정 여러 개 동시 사용하기**](https://blog.outsider.ne.kr/1448)
* [Bitbucket 쉽게 시작하는 방법 & 사용법](https://blog.naver.com/silvury14/220918267535)
* [기존 프로젝트를 Bitbucket과 SourceTree로 올려보자](https://developer88.tistory.com/65)
* [Github에서 Bitbucket Import](https://blog.mint-soft.com/10)
* [Github Two Factor 인증 설정하기 (feat. Authenticator)](https://jojoldu.tistory.com/449)
* [Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead. | by gon Kim | elecle | Jun, 2021 | Medium](https://medium.com/elecle-bike/password-authentication-is-temporarily-disabled-as-part-of-a-brownout-c507835b87f5)
* [Update git remote URLs with the access token - KC - Medium](https://blog.cloudacode.com/update-git-remote-urls-with-the-access-token-aac43c94d286)
* [**Password authentication was removed에 대처하기**](https://blog.neonkid.xyz/277)
* [Complete list of github markdown emoji markup](https://gist.github.com/rxaviers/7360908)
* [Github 패스워드 교체시 로컬 비밀번호도 변경하기](https://jojoldu.tistory.com/467)
* [GitHub에서 GPG 서명하기 (for OS X)](https://medium.com/@Makart/github%EC%97%90%EC%84%9C-gpg-%EC%84%9C%EB%AA%85%ED%95%98%EA%B8%B0-for-os-x-4f45ad8f1a49)
* [GPG(GNU PG)를 이용해 git 커밋에 서명하는 방법 | 44BITS](https://www.44bits.io/ko/post/add-signing-key-to-git-commit-by-gpg)
* [git 다중 사용자 신원 설정](http://jhrogue.blogspot.com/2020/04/5-git.html)
* [여러 깃헙 계정을 SSH 방식으로 사용하는 방법 — 시행착오를 줄이는 방법](https://dataportal.kr/7)
* [GitHub 여러 계정을 한 컴터에서 사용하기 - 1ilsang](https://1ilsang.dev/2020-02-30/devtip/github-multi-auth)
* [git multiple user 설정 방법](https://gist.github.com/hyunjun/5b3124a6110d5198e8cc#file-configuration-md)
* [How to Work with GitHub and Multiple Accounts](https://gist.github.com/JoaquimLey/e6049a12c8fd2923611802384cd2fb4a)
* [여러 깃헙 계정을 SSH 방식으로 사용하는 방법 :: 시행착오를 줄이는 방법](https://dataportal.kr/7)
* [Setting Up Git Identities](https://www.micah.soy/posts/setting-up-git-identities/)
* [**10 Extraordinary GitHub Repos for All Developers**](https://medium.com/better-programming/10-extraordinary-github-repos-for-all-developers-939cdeb28ad0)
* [GitHub Protips: Tips, tricks, hacks, and secrets from Lee Reilly](https://github.blog/2020-04-09-github-protips-tips-tricks-hacks-and-secrets-from-lee-reilly/)
* [GitHub Protips: Tips, tricks, hacks, and secrets from Alyson La](https://github.blog/2020-04-23-github-protips-tips-tricks-hacks-and-secrets-from-alyson-la/)
* [5 Git Practices for Effective Work](https://medium.com/better-programming/5-git-practices-for-effective-work-b612e5430bc7)
* [Why You Should Write Small Git Commits](https://medium.com/better-programming/why-you-should-write-small-git-commits-c9a042737aa6)
* [Github 프로필에 나의 Daliy 코딩 시간을 적용해보자!](https://fernando.kr/develop/2020-05-02-github-gist-posting)
* [4 New GitHub Products That Will Change How You Code](https://medium.com/better-programming/4-new-github-products-that-will-change-how-you-code-27933401faa0) Codespaces, Discussions, Code Scanning and Secret Scanning, Private Instances
* [GitHub Repos That Should Be Starred by Every Web Developer](https://medium.com/better-programming/github-repos-that-should-be-starred-by-every-web-developer-e9eaa244810e)
* [우리 팀 GitHub에 지금 당장 연결해야 할 서비스 4가지](https://medium.com/%EB%B0%95%EC%83%81%EA%B6%8C%EC%9D%98-%EC%82%BD%EC%A7%88%EB%B8%94%EB%A1%9C%EA%B7%B8/%EC%9A%B0%EB%A6%AC-%ED%8C%80-github%EC%97%90-%EB%8B%B9%EC%9E%A5-%EC%97%B0%EA%B2%B0%ED%95%B4%EC%95%BC-%ED%95%A0-4%EA%B0%80%EC%A7%80-%EC%84%9C%EB%B9%84%EC%8A%A4-4ea3c165114)
* [Resolving issue with Git not able to differentiate between letter cases (uppercase & lowercase) with folder/directory](https://medium.com/@bryantjiminson/resolving-issue-with-git-not-able-to-differentiate-between-letter-cases-uppercase-lowercase-88b4974b8188) git에서 대소문자 구분
* [Github Issue로 오픈소스 기여하기 | Univdev](https://www.univdev.page/posts/comment-on-github-issues/)
* [Introducing GitHub Super Linter: one linter to rule them all - The GitHub Blog](https://github.blog/2020-06-18-introducing-github-super-linter-one-linter-to-rule-them-all/)
* [How to Use GitHub Super Linter in Your Projects](https://www.freecodecamp.org/news/github-super-linter/)
* [GitHub 아이디/패스워드 입력 없이 사용하는 방법](https://kibua20.tistory.com/88)
* [rest-api-description: An OpenAPI description for GitHub's REST API](https://github.com/github/rest-api-description)
* [practice - github api to get PR review time's 90 percentile](https://github.com/hyunjun/practice_private/blob/ea459fdebaf28d580f332d863807c2bf69ed75e5/agoda/get_pr_90.py)
* [Learn about REST API and GraphQL through GitHub APIs and do magic - YouTube](https://www.youtube.com/watch?v=YpcU9-xgzUM)
* [How a one line change decreased our clone times by 99% | by Pinterest Engineering | Pinterest Engineering Blog | Oct, 2020 | Medium](https://medium.com/pinterest-engineering/how-a-one-line-change-decreased-our-build-times-by-99-b98453265370)
* [The Easiest Way To Remove Checked In Credentials From A Git Repo | by Tanmay Deshpande | Medium](https://medium.com/@tanmay.avinash.deshpande/the-easiest-way-to-remove-checked-in-credentials-from-a-git-repo-704a373b94e3)
* [Git push 결과물이 Github 잔디에 반영이 안될 때 해결하기 | by Ryan Kim | Nov, 2020 | Medium](https://equus3144.medium.com/git-push-%EA%B2%B0%EA%B3%BC%EB%AC%BC%EC%9D%B4-github-%EC%9E%94%EB%94%94%EC%97%90-%EB%B0%98%EC%98%81%EC%9D%B4-%EC%95%88%EB%90%A0-%EB%95%8C-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-5968a988b212)
* [쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)](https://www.slideshare.net/subicura/gitops-cicd-156402754)
* ["쿠버네티스와 깃옵스는 빵과 버터" 구글이 깃옵스를 간소화하는 방법 - ITWorld Korea](https://www.itworld.co.kr/news/238124)
* [GitOps As an Evolution of Kubernetes - YouTube](https://www.youtube.com/watch?v=IwipqLTWIs4)
* [GitOps 기반의 클러스터 구축하기 1부 — Terraform Cloud, Github Action 적용 | by Haeman Lee | Feb, 2023 | YOGIYO Tech Blog - 요기요 기술블로그](https://techblog.yogiyo.co.kr/gitops-%EA%B8%B0%EB%B0%98%EC%9D%98-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-1%EB%B6%80-terraform-cloud-github-action-%EC%A0%81%EC%9A%A9-92a0a0ffcba0)
* [GitOps Observability — Visualizing the journey of a container | by Samiya Akhtar | Nov, 2020 | Medium](https://samiyaakhtar.medium.com/gitops-observability-visualizing-the-journey-of-a-container-5f6ef1f3c9d2)
* [깃옵스가 '아직' 주류로 부상할 준비가 되지 않은 이유 - ITWorld Korea](https://www.itworld.co.kr/news/193624) gitops
* [Observability and GitOps - DZone DevOps](https://dzone.com/articles/observability-and-gitops)
* [데브옵스의 확장 모델 - 깃옵스(GitOps) 이해하기 : 네이버 포스트](https://post.naver.com/viewer/postView.naver?volumeNo=30601103&memberNo=36733075&navigationType=push)
* [복잡한 커밋 로그를 정리해줄 구원자, gitmoji](https://pilgwon.github.io/post/gitmoji)
* [OpenGitOps 1.0 is finally here and why you should care | OpenGitOps](https://opengitops.dev/blog/1.0-announcement/)
* [A ‘Hello World’ GitOps Example Walkthrough – zwischenzugs](https://zwischenzugs.com/2021/07/31/a-hello-world-gitops-example-walkthrough/)
* [GitOps (Flux) Extension for VS Code with Kingdon Barrett - YouTube](https://www.youtube.com/watch?v=bY-yFdc73Zc)
* [“지금 테스트서버 쓰시는 분?” (GitOps로 브랜치별 배포 시스템 구축하기) (1/2) | by 김희철 | 레몬베이스 (Lemonbase) | Sep, 2022 | Medium](https://medium.com/lemonbase/%EC%A7%80%EA%B8%88-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%84%9C%EB%B2%84-%EC%93%B0%EC%8B%9C%EB%8A%94-%EB%B6%84-gitops%EB%A1%9C-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%B3%84-%EB%B0%B0%ED%8F%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-1-2-5ed659956e3f)
* [“지금 테스트서버 쓰시는 분?” (GitOps로 브랜치별 배포 시스템 구축하기) (2/2) | by Noah | 레몬베이스 (Lemonbase) | Nov, 2022 | Medium](https://medium.com/lemonbase/%EC%A7%80%EA%B8%88-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%84%9C%EB%B2%84-%EC%93%B0%EC%8B%9C%EB%8A%94-%EB%B6%84-gitops%EB%A1%9C-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%B3%84-%EB%B0%B0%ED%8F%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-2-2-5c2daff6645c) EKS ArgoCD Helm
* [Bare-Metal Chronicles: Tinkerbell, Cluster API & GitOps • Katie Gamanji • GOTO 2022 - YouTube](https://www.youtube.com/watch?v=PHrUSpEydRM)
* [깃옵스(GitOps)를 여행하려는 입문자를 위한 안내서 | 요즘IT](https://yozm.wishket.com/magazine/detail/2010/)
* [Everything You Always Wanted To Know About GitHub (But Were Afraid To Ask)](https://gh.clickhouse.tech/explorer/)
* [Commits are snapshots, not diffs - The GitHub Blog](https://github.blog/2020-12-17-commits-are-snapshots-not-diffs/)
* [Git is my buddy: Effective Git as a solo developer](https://mikkel.ca/blog/git-is-my-buddy-effective-solo-developer/)
* branch는 한 가지 유용한 일만 해야 함
* 모든 commit은 독립적 - commit마다 독자적인 테스트 포함, 모든 테스트 통과해야 함
* draft commit도 ok(하지만 build는 되야 함)
* commit을 완전히 버려도 좋다
* 실수 방어 도구 - git commit --amend, git commit --fixup [hash], git rebase --interactive main, git stash, git blame
* [깃허브(GitHub)로 취업하기](https://sujinlee.me/professional-github/)
* [Git Workflow Diagram](https://happygrammer.github.io/guide/git-workflow-diagram/)
* [Include diagrams in your Markdown files with Mermaid | The GitHub Blog](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/)
* 텍스트 기반으로 다이어그램을 그릴 수 있는 Mermaid를 GitHub에서 지원
* 이슈나 Pull Request 등 GitHub의 마크다운을 작성할 수 있는 곳에서 간단히 다이어그램 포함 가능
* [Mermaid, topoJSON, geoJSON, and ASCII STL Diagrams Are Now Supported in Markdown and as Files | GitHub Changelog](https://github.blog/changelog/2022-03-17-mermaid-topojson-geojson-and-ascii-stl-diagrams-are-now-supported-in-markdown-and-as-files/)
* 최근 GitHub에 Mermaid 지원이 추가되어 마크다운에서 Mermaid 다이어그램 작성 가능
* 추가로 geojon이나 topojson으로 위치 범위를 표시하거나 stl로 3D 렌더링 표시 가능
* [What’s wrong with Git? A conceptual design analysis | the morning paper](https://blog.acolyer.org/2016/10/24/whats-wrong-with-git-a-conceptual-design-analysis/)
* [Git as a NoSql database](https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/)
* [Scaling monorepo maintenance | The GitHub Blog](https://github.blog/2021-04-29-scaling-monorepo-maintenance/)
* ['폴리리포주의자'가 모노리포를 반대하는 3가지 이유 - ITWorld Korea](https://www.itworld.co.kr/news/214234)
* [GitHub Packages Container registry is generally available | The GitHub Blog](https://github.blog/2021-06-21-github-packages-container-registry-generally-available/)
* Docker Hub처럼 GitHub에 컨테이너 이미지를 배포하고 받아올 수 있음
* [GitHub, 블로그에 방문자 카운터를 달아보자 | SILENTSOFT](https://blog.silentsoft.org/archives/192)
* [Highlights from Git 2.33 | The GitHub Blog](https://github.blog/2021-08-16-highlights-from-git-2-33/)
* [github.dev - GitHub코드를 VS Code로 1초만에 둘러보기 | GeekNews](https://news.hada.io/topic?id=4802)
* [코드베이스 시각화 하기 | GeekNews](https://news.hada.io/topic?id=4782)
* [git은 폴더경로가 변경된 것을 어떻게 알 수 있을까? - Kwoncharles Blog](https://kwoncheol.me/posts/git-rename-inference)
* git에서 파일 경로를 변경, 수정까지 한 경우 git이 어떻게 커밋히스토리를 유지하는지 추적한 글
* 추가/삭제된 파일의 hash로 후보를 찾고 이 파일을 규칙에 따라 chunk로 나는 뒤에 50% 이상 동일하면 변경된 것으로 인식
* 그래서 파일 마지막에 개행 문자가 없는 경우에 rename의 추적 과정이 왜 달라지는지도 설명
* [Improving Git protocol security on GitHub | The GitHub Blog](https://github.blog/2021-09-01-improving-git-protocol-security-github/)
* [Protect Your Code with GitHub Security Features • Rob Bos • GOTO 2023 - YouTube](https://www.youtube.com/watch?v=1CICkxLKVmE)
* [GitHub과 소프트웨어 보안 - YouTube](https://www.youtube.com/watch?v=j5GDh67ql4s)
* [GitHub 보안 개선](https://jhrogue.blogspot.com/2021/11/github.html)
* [Sergey Bronnikov - Git as a storage](https://bronevichok.ru/posts/git-as-a-storage.html)
* [많은 사람들이 모르는 Github Organization Public](https://velog.io/@juunini/%EB%A7%8E%EC%9D%80-%EC%82%AC%EB%9E%8C%EB%93%A4%EC%9D%B4-%EB%AA%A8%EB%A5%B4%EB%8A%94-Github-Organization-public)
* [Github: 은근히 많이 쓰는 깃헙약어](https://hidekuma.github.io/github/abbreviation/abbreviation/)
* [2 stories about Migrate containers to GitHub Container Registry (GHCR) — GitHub Packages curated by Bryant Jimin Son - Medium](https://bryantson.medium.com/list/migrate-containers-to-github-container-registry-ghcr-github-packages-bcbcffd7946c)
* [Using ChatOps to help Actions on-call engineers | The GitHub Blog](https://github.blog/2021-12-01-using-chatops-to-help-actions-on-call-engineers/)
* GitHub에서는 터미널 대신 슬랙에서 명령어를 입력해서 자동화하는 "Hubot"이라는 ChatOps 활용
* Hubot은 로그 수집 도구인 Kusto에 질의를 할 수 있으므로 문제가 생겼을 때 Hubot을 이용해서 바로 조회, 처음 온 사람도 비상대기할 때 장애 상황에 대처할 플레이 북 문서를 Hubot을 통해서 조회, 플레이 북을 자동화해서 문제 검색
* [개발팀 퇴근시간을 앞당겨줄 git, github 팁 | 요즘IT](https://yozm.wishket.com/magazine/detail/1796/) 자동화, 이슈 템플릿
* [How to automate everything with GitHub with GitHub App - YouTube](https://www.youtube.com/watch?v=mF_sw6R7Bf0)
* [Git 2.35의 주요 변경점 | GeekNews](https://news.hada.io/topic?id=5856)
* [My tips for maintaining dotfiles in source control | Opensource.com](https://opensource.com/article/22/2/dotfiles-source-control)
* [Performance at GitHub: deferring stats with rack.after_reply | The GitHub Blog](https://github.blog/2022-04-11-performance-at-github-deferring-stats-with-rack-after_reply/)
* GitHub에서 `rack.after_reply`를 이용해서 30~50ms 정도 응답 시간을 줄일 개선을 정리한 글
* GitHub의 성능 분석을 하면서 요청을 처리할 때 매트릭을 보내기 위해 요청당 최대 65ms를 사용한다는 것을 발견
* 배치로 모아서 보내거나 `Rack::Events` 등의 방법을 고려해 봤지만, 문제를 해결할 수 있어 보이지 않음
* 그러다가 Puma의 `rack.after_reply`가 응답을 완료한 후 실행하는 기능이라는 것을 발견
* GitHub에서는 Puma 대신 Unicorn을 쓰고 있었기 때문에 `rack.after_reply` 구현해서 Unicorn에 기여
* 이를 통해 사용자에게 응답을 보낸 후에 매트릭을 전송하게 하여 P50에서는 30ms, P99에서는 50ms 이상 감소
* [Math on GitHub: The Good, the Bad and the Ugly | techematics](https://nschloe.github.io/2022/05/20/math-on-github.html)
* [Math support in Markdown | The GitHub Blog](https://github.blog/2022-05-19-math-support-in-markdown/)
* GitHub 마크다운에서 `$`, `$$` 기호를 이용해서 TeX나 LaTeX 스타일의 수식 작성 가능
* [Improved REST API documentation | The GitHub Blog](https://github.blog/2022-05-24-improved-rest-api-documentation/)
* GitHub의 REST API 문서 개선
* OpenAPI 스키마에서 자동으로 문서가 생성되도록 바꾼 후 지속해서 개선하고 있는데 파라미터와 응답을 쉽게 볼 수 있도록 3컬럼 레이아웃 사용
* 예제도 cURL 뿐 아니라 JS와 GitHub CLI 같이 제공
* [Specify theme context for images in Markdown (Beta) | GitHub Changelog](https://github.blog/changelog/2022-05-19-specify-theme-context-for-images-in-markdown-beta/)
* GitHub 마크다운에서 `prefers-color-scheme`를 이용해서 `<picture>` HTML로 라이트/다크 테마에 따라 다른 이미지 출력 가능
* [GitHub에서 사용자 테마에 따라 다른 이미지 보여주기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1620) theme
* [git tips and tricks - Part 1: the fundamentals](https://gajon.org/git-tips-and-tricks-part-1-the-fundamentals)
* [GitHub Sponsors](https://github.com/sponsors)
* [GitHub Sponsors가 국내에 열렸습니다 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1609)
* [Automate GitHub API Calls With Ruby, Keyboard Maestro, and 1Password CLI - DEV Community 👩💻👨💻](https://dev.to/monfresh/automate-github-api-calls-with-ruby-keyboard-maestro-and-1password-cli-2ge5)
* [10년차도 실수하는 Git의 화살표 방향. 프로그래밍에 발을 들이고 조금 지나면 프로그래밍 언어만큼이나 뇌를… | by 송요창 | Sep, 2022 | Medium](https://medium.com/@totuworld/10%EB%85%84%EC%B0%A8%EB%8F%84-%EC%8B%A4%EC%88%98%ED%95%98%EB%8A%94-git%EC%9D%98-%ED%99%94%EC%82%B4%ED%91%9C-%EB%B0%A9%ED%96%A5-1d8cd7949d36)
* [만화로 보는 GIT 탄생 이야기 | GeekNews](https://news.hada.io/topic?id=7529)
* [Experiment: The hidden costs of waiting on slow build times | The GitHub Blog](https://github.blog/2022-12-08-experiment-the-hidden-costs-of-waiting-on-slow-build-times/)
* 개발자에게 더 강력한 하드웨어를 물으면 항상 그렇다고 대답
* GitHub에서 실제 더 강력한 하드웨어를 사용했을 때 비용이 어느 정도인지 알기 위한 실험
* Linux 커널을 컴파일하는 프로젝트를 대상으로 2 코어에서 64코어로 빌드해서 얼마나 많은 시간이 절약되었는지 점검
* 이 시간이 비즈니스 비용이 얼마나 되는지 검색
* 미국 개발자의 평균 비용으로 시간당 75달러를 기준으로 빌드 중에 다른 일은 하지 않는다고 계산
* 코어가 늘어나면 빌드 시간이 많이 감소하므로 개발자 비용도 많이 감소
* 두 번째 실험에서는 빌드 동안 기다리는 대신 다른 작업을 한다고 가정
* 결국 컨텍스트 스위칭이 일어나는데 컨텍스트 스위칭에 1시간이 걸린다고 가정하면 빌드 시간이 큰 의미 없어지지만
* 15분, 30분이라고 생각하면 빌드시간을 줄이는 데 드는 비용이 개발자 비용보다 훨씬 적기 때문에 강력한 하드웨어를 쓰는 게 타당
* [Building GitHub with Ruby and Rails | The GitHub Blog](https://github.blog/2023-04-06-building-github-with-ruby-and-rails/)
* Ruby on Rails로 만들어진 GitHub.com은 이제 200만 줄의 코드로 구성되어 1,000명이 협업
* 매주 월요일 GitHub Actions 워크플로우가 Rails 프로젝트 메인 브랜치의 최신 커밋으로 Rails 버전을 업데이트해서 모든 빌드를 새 버전으로
* 전에는 새 버전 업데이트에 여러 달이 걸렸지만 이제 1주일 이내로 완료
* 이 이점으로 Rails에 패치를 보내고 기다리거나 할 필요없이 Rails 프로젝트에 바로 패치를 전송 가능(merge되면 다음 주에 바로 적용)
* 보안에도 좋으며
* 빅뱅 마이그레이션이 사라짐
* 비슷한 업그레이드가 Ruby에도 적용하고 있어서 Ruby 3.2때는 한 달 만에 업그레이드했지만 3.2.1을 당일날 업그레이드
* [git과 ssh/https의 관계 - AnyDoc](https://dev.alliknow.info/posts/2023/5/relation-of-git-ssh-and-https)
* [Push protection is generally available, and free for all public repositories | The GitHub Blog](https://github.blog/2023-05-09-push-protection-is-generally-available-and-free-for-all-public-repositories/)
* 커밋에 시크릿이 포함된 경우 푸시 자체를 거절하는 Push protection 기능이 공개 저장소에서 무료로 이용 가능
# Action
* [GitHub Actions 소개](https://blog.outsider.ne.kr/1412)
* [GitHub Actions에서 원하는 워크플로우 만들기](https://blog.outsider.ne.kr/1415)
* [GitHub Actions 워크플로우 사용하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1510)
* [Run your GitHub Actions workflow on a schedule](https://jasonet.co/posts/scheduled-actions/)
* [Accelerating new GitHub Actions workflows https://github.com/features/actions ](https://github.com/actions/starter-workflows)
* [Write Your GitHub Actions Workflow for Build Windows Application](https://medium.com/rkttu/write-your-github-actions-workflow-for-build-windows-application-94e5a989f477)
* [Create Simple GitHub Actions Workflow for Java Application |GitHub Actions Crash Course | DevOpsHint - YouTube](https://www.youtube.com/watch?v=ODG0d-9Kh6U)
* [GitHub Actions workflow를 수동으로 trigger하기(feat. inquirer.js) | 카카오엔터테인먼트 FE 기술블로그](https://fe-developers.kakaoent.com/2022/220929-workflow-dispatch-with-inquirer-js/)
* [**GitHub Action을 사용해 새로 올라온 전월세 방 목록 받아보기**](https://ahnheejong.name/articles/receive-new-room-notification-mails-using-github-action/)
* [**GithubAction+React+AWS S3**](https://velog.io/@loakick/series/GithubActionReactAWS-S3)
* [**GitHub Actions로 간단히 CI 서버 대신하기**](https://huns.me/posts/2019-12-05-33)
* [.NET Core 콘솔 앱으로 커스텀 GitHub Action 만들기](https://blog.aliencube.org/ko/2020/02/19/building-custom-github-action-with-dotnet-core/)
* [GitHub Actions으로 날씨알리미 만들기](https://qiita.com/leechungkyu/items/e57951cdaa046acafd76)
* [깃헙 액션으로 ChatOps 구현하기](https://blog.aliencube.org/ko/2020/03/05/implementing-chatops-on-github-actions/) microsoft teams 연결
* [github.com - action](https://www.youtube.com/watch?v=uBOdEEzjxzE)
* [30분만에 만드는 깃헙 액션 - 라이브 코딩](https://www.youtube.com/watch?v=Hcf4dpTQhwA)
* [GitHub Actions (CI/CD Flow)](https://www.youtube.com/watch?v=0tMkRSdp-Go)
* [GitHub Actions Runner](https://github.com/actions/runner)
* [Github Actions를 이용한 개발블로그 글을 슬랙으로 알림받기](https://fernando.kr/22)
* [Github 프로필에 나의 Daliy 코딩 시간을 적용해보자!](https://fernando.kr/develop/2020-05-02-github-gist-posting/)
* [GitHub Actions, 어디까지 써봤니?](https://dico.me/topic/articles/279)
* [의존성 캐시로 Github Actions 속도 높이기](https://www.notion.so/Github-Actions-7ca7c1ddf2f74d24ab9173d1b5c97366)
* [Doing Stupid Stuff with GitHub Actions | DevOps Directive](https://devopsdirective.com/posts/2020/07/stupid-github-actions/)
* [Automate releases and more with the new Sentry Release GitHub Action - The GitHub Blog](https://github.blog/2020-08-24-automate-releases-and-more-with-the-new-sentry-release-github-action/)
* [**GitHub Action을 이용한 알림 자동화 | 딥백수**](https://dl4ab.github.io/2020/09/18/slack-github-action-automation/) slack
* [GitHub Actions를 활용한 ECS 배포자동화. Deployment Automation (Django + Docker… | by Woosik Kim | Feb, 2021 | Medium](https://well-balanced.medium.com/github-action%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-ecs-%EB%B0%B0%ED%8F%AC%EC%9E%90%EB%8F%99%ED%99%94-dd359c259910)
* [github action과 heroku를 이용한 빌드/배포 자동화 - YouTube](https://www.youtube.com/watch?v=YMdwYPCyxRk)
* [GitHub Actions로 npm publish 자동화하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1559)
* [springboot-helloworld: springboot 데모 프로젝트 - helloworld](https://github.com/choisungwookDevops/springboot-helloworld)
* [Continuous Delivery: GitHub Actions (Developer Workflow Automation with GitHub Actions CICD) - YouTube](https://www.youtube.com/watch?v=cKMO0aeh8GI)
* [GitHub Actions에서 Chrome WebDriver 테스트 오류 해결법 (pytest)](https://blog.joonas.io/158)
* [GitHub 액션과 ARM 템플릿 검사도구를 이용한 Bicep 코드 품질 테스트 | Aliencube](https://blog.aliencube.org/ko/2020/09/30/github-actions-and-arm-template-toolkit-to-test-bicep-codes/)
* [Docker Github Actions - Docker Blog](https://www.docker.com/blog/docker-github-actions/)
* [GitHub Actions Tutorial - Basic Concepts and CI/CD Pipeline with Docker - YouTube](https://www.youtube.com/watch?v=R8_veQiYBjI)
* [2020년식으로 블로그 빌드 고치기 · /usr/lib/libsora.so](https://libsora.so/posts/migration-blog-2020/)
* [ci skip 커밋 메시지로 GitHub Actions 실행 취소하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1513)
* [GitHub Actions와 Fastlane을 사용해서 React Native 앱 배포하기 - GitHub Actions와 Fastlane을 사용해서 React Native로 개발한 앱을 자동으로 배포해 봅시다](https://dev-yakuza.posstree.com/ko/react-native/github-actions-fastlane/)
* [리서치 코드의 지속적 통합(CI) 튜토리얼(상편). By 송호연 | by Riiid Techblog | Feb, 2021 | Medium](https://riiidtechblog.medium.com/%EB%A6%AC%EC%84%9C%EC%B9%98-%EC%BD%94%EB%93%9C%EC%9D%98-%EC%A7%80%EC%86%8D%EC%A0%81-%ED%86%B5%ED%95%A9-ci-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-%EC%83%81%ED%8E%B8-aae5fabea681)
* [GitHub으로 시작하는 CI/CD #github #actions - YouTube](https://www.youtube.com/watch?v=Np64aq4AlLg)
* [actions](https://okdevtv.com/mib/github/actions)
* [GitHub Actions의 pull_request_target과 workflow_run 이벤트 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1541)
* [내 깃허브가 털렸다](https://code-yeongyu.tistory.com/37)
* [GitHub Actions로 수행하는 CI/CD DevOps, 리포트 만들기, 메시지 보내기 등의 놀라운 작업들 - YouTube](https://www.youtube.com/watch?v=356L7uv_W8Q)
* 깃허브 코리아 밋업: 깃허브 액션 데모 발표
* GitHub Korea Meetup 그룹 7월 이벤트를 통해서 한 "깃허브 액션으로 수행하는 CI/CD DevOps, 리포트 만들기, 메시지 보내기 등등의 놀라운 작업들" 발표
• "깃허브 헬로 월드" 시작하기
• Microsoft Teams 메시지 보내기
• Twilio 로 텍스트 문자 메시지 보내기
• Infra CI/CD 로 Azure Web App 자동 생산하기
• App Dev CI/CD 로 NodeJS 앱을 JEST 테스트/테스트 카버리지/깃허브 페키지 빌드/깃허브 아티팩트 사용한후 Azure 웹앱으로 배포하
• 그리고 Terraform 으로 AWS 에 2개의 가상 머신에 로드발렌스 되어 있고 오토 스케일 기능 갖추어진 리소스 생산하기
* [CI/CD Github Actions으로 내 포트폴리오에 CI/CD를 적용하기](https://velog.io/@couchcoding/CICD-Github-Actions%EC%9C%BC%EB%A1%9C-%EB%82%B4-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%97%90-CICD%EB%A5%BC-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0-1)
* [GitHub Actions 워크플로우의 승인 기능 사용하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1556)
* [Publish to NPM using GitHub Actions | Publishing Node.js packages to NPM using GitHub Actions - YouTube](https://www.youtube.com/watch?v=GW1sY_Ipfd0)
* [GitHub 프로필을 iMessage 대화 메시지로 꾸며보기 | by Jin Hyung Park | Aug, 2021 | Medium](https://medium.com/@jypthemiracle/github-%ED%94%84%EB%A1%9C%ED%95%84%EC%9D%84-imessage-%EB%8C%80%ED%99%94-%EA%B5%AC%EB%A6%84%EC%9C%BC%EB%A1%9C-%EA%BE%B8%EB%A9%B0%EB%B3%B4%EA%B8%B0-d41d48b3b921)
* GitHub에서 자신의 프로필 페이지를 원하는 대로 꾸밀 수 있는 프로필 저장소 기능을 이용해 프로필 페이지에 iMessage 형식으로 대화하듯 인사말과 날씨등을 보여주는 기능을 구현하는 과정 설명
* 프로필에서 스크립트 등을 원하는 대로 사용할 수는 없으므로 액션을 이용해서 SVG로 생성해서 보여주는 과정을 거치게 되는데 해당 기능을 원래 구현했던 개발자의 소스를 참고해서 이 기능이 어떻게 구현되는지 설명
* [Github action를 이용한 커뮤니티 행사 관리/운영 하기! | JaeSeoKim's Blog](https://jaeseokim.dev/42Seoul/Github_action%EB%A5%BC_%EC%9D%B4%EC%9A%A9%ED%95%9C_%EC%BB%A4%EB%AE%A4%EB%8B%88%ED%8B%B0_%ED%96%89%EC%82%AC_%EA%B4%80%EB%A6%AC%EC%9A%B4%EC%98%81_%ED%95%98%EA%B8%B0/)
* [Automating a software company with GitHub Actions - PostHog](https://posthog.com/blog/automating-a-software-company-with-github-actions)
* [Github Actions 로컬 개발 환경 구성하기 - Burt.K](https://blog.burt.pe.kr/posts/skyfe79-blog.contents-980082002-post-26/)
* [GitHub Actions: Ephemeral self-hosted runners & new webhooks for auto-scaling | GitHub Changelog](https://github.blog/changelog/2021-09-20-github-actions-ephemeral-self-hosted-runners-new-webhooks-for-auto-scaling/)
* [Next.js AWS S3를 통한 정적 웹 사이트 배포 및 GitHub Actions를 통한 CI/CD](https://weekwith.tistory.com/entry/Nextjs-AWS-S3%EB%A5%BC-%ED%86%B5%ED%95%9C-%EC%A0%95%EC%A0%81-%EC%9B%B9-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B0%B0%ED%8F%AC-%EB%B0%8F-GitHub-Actions%E1%84%85%E1%85%B3%E1%86%AF-%E1%84%90%E1%85%A9%E1%86%BC%E1%84%92%E1%85%A1%E1%86%AB-CICD)
* [Build & Push Docker Image to AWS ECR using GitHub Actions | Build Docker Image Using GitHub Actions - YouTube](https://www.youtube.com/watch?v=6O-7zb-igUs)
* [10 GitHub Actions resources to bookmark from the basics to CI/CD | The GitHub Blog](https://github.blog/2021-11-04-10-github-actions-resources-basics-ci-cd/)
* [GitHub Actions: reusable workflows is generally available | The GitHub Blog](https://github.blog/2021-11-29-github-actions-reusable-workflows-is-generally-available/)
* 여러 저장소에 걸쳐서 반복적으로 사용하는 워크플로우를 복사 붙이기로 만드는 대신 공동으로 사용할 곳을 만들어 두고 저장소의 워크플로우 YAML을 바로 지정해서 사용할 수 있는 방법 추가
* 워크플로우의 `uses: my-org/actions/.github/workflows/node.js.yml@1`처럼 지정해서 재사용
* [깃헙 액션, 이런 것도 할 수 있다고? 꿀팁 대방출! | 애저한발짝 - YouTube](https://www.youtube.com/watch?v=_YBdD-53XZU)
* [카카오웹툰은 GitHub Actions를 어떻게 사용하고 있을까? | 카카오엔터테인먼트 FE 기술블로그](https://fe-developers.kakaoent.com/2022/220106-github-actions/)
* 카카오웹툰 GitHub Actions 활용 팁 설명
* 간단한 Actions 설명부터 시작, Slack에 알림을 보내기 위해 별도로 만든 Actions 파일을 연결해서 사용
* 글로벌 배포를 위해 브랜치 이름에 관례를 만들어서 어느 리전과 환경에 배포할지를 판단 가능
* 추가로 정기적으로 실행되도록 설정한 자동배포 워크플로우도 설명
* [How we ship GitHub Mobile every week | The GitHub Blog](https://github.blog/2022-01-12-how-we-ship-github-mobile-every-week/)
* [How to build a CI/CD pipeline with GitHub Actions in four simple steps | The GitHub Blog](https://github.blog/2022-02-02-build-ci-cd-pipeline-github-actions-four-steps/)
* [Part – IX: Push to ACR using GitHub Actions (Continuous Deployment) – Hello World!](https://learnai1.home.blog/2022/02/28/part-ix-push-to-acr-using-github-actions/)
* [Github Action 빌드 결과 Telegram Bot으로 보내기](https://jojoldu.tistory.com/659)
* [GitHub Actions by Example](https://www.actionsbyexample.com/)
* [GitHub Actions by Example | GeekNews](https://news.hada.io/topic?id=5829)
* [How to start using reusable workflows with GitHub Actions | The GitHub Blog](https://github.blog/2022-02-10-using-reusable-workflows-github-actions/)
* GitHub Actions 워크플로우를 복사/붙이기 할 필요 없이 `workflow_call`로 다른 저장소의 워크플로우를 호출하는 방법 설명
* 액션에서 `workflow_call`를 지정하고 다른 저장소에서 `uses`로 호출할 수 있는데 저장소에서 접근 권한을 열어주어야 함
* 대신 private 저장소의 워크플로우는 참조할 수 없고 하나 이상을 참조도 불가능
* [GitHub Actions의 workflow_call로 워크플로우 재사용하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1591)
* [다른 저장소의 GitHub Actions 워크플로우를 호출할 수 있는 repository_dispatch :: Outsider's Dev Story](https://blog.outsider.ne.kr/1589)
* [Introduction to GitHub Actions | Workflow of GitHub Actions | GitHub Actions Tutorial for Beginners - YouTube](https://www.youtube.com/watch?v=67fvIzYqD_I)
* [GitHub Actions에서 워크플로우 실행의 이름을 바꿀 수 있는 run-name :: Outsider's Dev Story](https://blog.outsider.ne.kr/1626)
* [GitHub Actions의 Composite 액션 작성하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1592)
* [GitHub Actions에서 도커 캐시를 적용해 이미지 빌드하기 | 카카오엔터테인먼트 FE 기술블로그](https://fe-developers.kakaoent.com/2022/220414-docker-cache/)
* [release 브랜치 merge시 Tag 생성, 브랜치 삭제하기 (feat. Gihtub Action)](https://jojoldu.tistory.com/668)
* [카카오엔터프라이즈가 GitHub Actions를 사용하는 이유 – tech.kakao.com](https://tech.kakao.com/2022/05/06/github-actions/)
* [Visualize your Actions with GitHub Actions Job Summary - YouTube](https://www.youtube.com/watch?v=2-3ROfpSn8o)
* [GitHub Actions의 잡 요약 기능 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1594)
* [GitHub Action 2년간 사용기](https://devocean.sk.com/search/techBoardDetail.do?ID=163365)
* [Node Project CI 하기 (with Github Action)](https://velog.io/@dev_leewoooo/Node-Project-CI-%ED%95%98%EA%B8%B0-with-Github-Action)
* [Connecting to a private network from GitHub-hosted Actions runners | The GitHub Blog](https://github.blog/2022-06-01-connecting-to-a-private-network-from-github-hosted-actions-runners/)
* GitHub Actions를 사용할 때 보통은 깃헙이 운영하는 GitHub-hosted 러너 사용
* 회사의 프라이빗 네트워크에 연결이 필요한 경우 보통 self-hosted 러너를 네트워크 안에 띄워서 실행 가능
* 하지만 self-hosted 러너를 관리할 리소스가 없는 경우 GitHub-hosted 러너에서 프라이빗 네트워크에 연결할 방법 설명
* OpenID Connect(OICD) 토큰을 이용해서 API 게이트웨이에 인증해서 접속하거나 WireGuard로 오버레이 네트워크를 설정하거나 TailScale같은 사용 솔루션으로 오버레이 네트워크 설정해서 연결
* [Automate Deploy Jupyter Notebooks with Github Actions | MLOps | Productionize Jupyter Notebooks - YouTube](https://www.youtube.com/watch?v=jVag3kUhUXQ)
* [MLOps with Hugging Face Spaces, Gradio and Github Actions - YouTube](https://www.youtube.com/watch?v=VYSGjUa5sc4) Github Action기반으로 Hugging Face에 CD하는 MLOps tutorial
* [Auto Label in Issue · Actions · GitHub Marketplace](https://github.com/marketplace/actions/auto-label-in-issue)
* [How to build Python Project using GitHub Actions | GitHub Actions CI/CD Pipeline for Python Project - YouTube](https://www.youtube.com/watch?v=PsO5dZqBckY)
* [The Database CI/CD Best Practice with GitHub](https://www.bytebase.com/blog/database-cicd-best-practice-with-github)
* [Using Different Shell in GitHub Actions | Running Inline Shell and Checkout code with GitHub Actions - YouTube](https://www.youtube.com/watch?v=99Zdjb0ySBQ)
* [CircleCI에서 GitHub Actions로 이전하며 배포 속도 개선하기 | by Seungwook Seo | 당근마켓 팀블로그 | Sep, 2022 | Medium](https://medium.com/daangn/circleci%EC%97%90%EC%84%9C-github-actions%EB%A1%9C-%EC%9D%B4%EC%A0%84%ED%95%98%EB%A9%B0-%EB%B0%B0%ED%8F%AC-%EC%86%8D%EB%8F%84-%EA%B0%9C%EC%84%A0%ED%95%98%EA%B8%B0-39fc41617993)
* [How to use actions/checkout in GitHub Actions | GitHub - jobs : what is : use actions/checkout - YouTube](https://www.youtube.com/watch?v=nAK3mFRxfFA)
* [Automatically create GitHub repository, enable branch protection with Terraform and GitHub Actions - YouTube](https://www.youtube.com/watch?v=nZPyCdyJe4A)
* [Making CI workflow faster with Github Actions - Blog | luminousmen](https://luminousmen.com/post/making-ci-workflow-faster-with-github-actions)
* [Github Actions 과 함께 Continuous Delivery 구축하기 | by Yuwon Oh | 29CM TEAM | 29CM TEAM](https://medium.com/29cm/github-actions-%EA%B3%BC-%ED%95%A8%EA%BB%98-continuous-delivery-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-c712dec2dd3)
* [하루에도 10번 배포하는 Flutter 앱 CI/CD 구축하기 | by 아테나스랩 | 아테나스랩 팀블로그 | Oct, 2022 | Medium](https://medium.com/athenaslab/%ED%95%98%EB%A3%A8%EC%97%90%EB%8F%84-10%EB%B2%88-%EB%B0%B0%ED%8F%AC%ED%95%98%EB%8A%94-flutter-%EC%95%B1-ci-cd-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-9f2fbe080c2b)
* [Introducing GitHub Actions Importer | The GitHub Blog](https://github.blog/2022-11-10-introducing-github-actions-importer/)
* Azure DevOps, Jenkins, CircleCI 등 다른 CI의 파이프라인을 분석해서 임포트할 수 있게 해주는 GitHub Actions Importer가 GitHub Universe에서 공개
* [GitHub Actions 배포 동시성 설정 - 현구막 기술 블로그](https://hyeon9mak.github.io/github-actions-deployment-concurrency-setting/)
* [if(kakao)dev2022 GitHub Actions Runner 빌드 실전 적용기](https://if.kakao.com/2022/session/73)
* [GitHub Actions workflow notifications in Slack and Microsoft Teams | GitHub Changelog](https://github.blog/changelog/2022-12-06-github-actions-workflow-notifications-in-slack-and-microsoft-teams/)
* Slack과 Microsoft Teams의 GitHub 앱을 통해 GitHub Actions의 워크플로우의 알림 수신 가능
* `/github subscribe owner/repo workflows` 명령어로 알림 구독
* `/github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"actor name"}`같은 식으로 워크플로를 필터링해서 구독 가능
* [GitHub Actions에서 조직 수준의 필수 워크플로우를 관리할 수 있는 Required Workflows :: Outsider's Dev Story](https://blog.outsider.ne.kr/1647)
* [GitHub Actions - Support for configuration variables in workflows | GitHub Changelog](https://github.blog/changelog/2023-01-10-github-actions-support-for-configuration-variables-in-workflows/)
* GitHub Actions에서 기존에는 시크릿만 저장해서 관리할 수 있었지만
* 민감하지 않은 데이터를 관리할 수 있도록 configuration variables가 추가
* Actions 설정에서 추가한 뒤 워크플로우에서 ``${{ vars.REPOSITORY_VAR }}`` 형태로 참조 가능
* [Github Workflow에서 Python 패키지 설치 시간 단축하기](https://myjorney.tistory.com/entry/Github-Workflow%EC%97%90%EC%84%9C-Python-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%84%A4%EC%B9%98-%EC%8B%9C%EA%B0%84-%EB%8B%A8%EC%B6%95%ED%95%98%EA%B8%B0)
* [GitHub Actions에서 output 변수의 문법 변경 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1651)
* [Github Actions의 느려터진 성능을 (회사)돈 주고 사보자 — Github-hosted Larger runners 사용기 | by 정백경 | Jan, 2023 | Medium](https://baekkyoungjung.medium.com/github-actions%EC%9D%98-%EB%8A%90%EB%A0%A4%ED%84%B0%EC%A7%84-%EC%84%B1%EB%8A%A5%EC%9D%84-%ED%9A%8C%EC%82%AC-%EB%8F%88-%EC%A3%BC%EA%B3%A0-%EC%82%AC%EB%B3%B4%EC%9E%90-github-hosted-larger-runners-%EC%82%AC%EC%9A%A9%EA%B8%B0-ec27427f1501)
* [워크서버개발팀의 GitHub Actions 적용기](https://tech.kakaoenterprise.com/180)
* [Awesome GitHub Copilot: GitHub Actions to build Apple iOS project with CI/CD project - YouTube](https://www.youtube.com/watch?v=86quBXr0m5I)
* [GitHub Actions - JavaScript action 만들기 | 카카오엔터테인먼트 FE 기술블로그](https://fe-developers.kakaoent.com/2023/230413-github-actions-javascript-action/)
* [Announcing GitHub Actions Deployment Protection Rules, now in public beta | The GitHub Blog](https://github.blog/2023-04-20-announcing-github-actions-deployment-protection-rules-now-in-public-beta/)
* GitHub Actions의 배포 기능을 사용할 때 Deployment protection rules 추가
* 이를 통해 Datadog, Honeycomb, New Relic, NodeSource, Sentry, ServiceNow 등 GitHub과 파트너쉽을 맺은 회사가 이미 앱을 제공
* 이 앱을 통해 배포 시 안전한 배포만 나가도록 추가적인 보호 정책을 적용 가능
* 직접 Deployment protection rules을 만들어서 공유도 가능
* [GitHub Actions의 스킵된 Required 잡 실행하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1671)
* [GitHub Actions - Actions Runner Controller Public Beta | GitHub Changelog](https://github.blog/changelog/2023-05-10-github-actions-actions-runner-controller-public-beta/)
* GitHub Actions의 셀프 호스티드 러너를 Kubernetes에서 운영할 수 있도록 도와주는 Kubernetes 오퍼레이터인 Actions Runner Controller(ARC)가 퍼블릭 베타로 공개
* [Writing a GitHub Action with Scala.js | TonioGela's](https://toniogela.dev/gh-action-in-scala/)
* [GitHub Actions를 활용한 개발 효율화. Intro | by Oh jeongseok | 네이버 플레이스 개발 블로그 | Jun, 2023 | Medium](https://medium.com/naver-place-dev/github-actions%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EA%B0%9C%EB%B0%9C-%ED%9A%A8%EC%9C%A8%ED%99%94-7df7a14b8843)
* [act: Run your GitHub Actions locally 🚀](https://github.com/nektos/act)
* [act으로 깃허브 액션즈를 로컬에서 테스트하기](https://blog.naver.com/pjt3591oo/222890739427)
* [actions-runner-controller: Kubernetes controller for GitHub Actions self-hosted runnners](https://github.com/actions-runner-controller/actions-runner-controller)
* [GitHub Skills](https://skills.github.com/)
* [Introducing GitHub Skills | The GitHub Blog](https://github.blog/2022-06-06-introducing-github-skills/)
* [shot-scraper-template - 웹 페이지 스크린샷을 저장하는 GitHub Re | GeekNews](https://news.hada.io/topic?id=6178)
* [Instantly create a GitHub repository to take screenshots of a web page](https://simonwillison.net/2022/Mar/14/shot-scraper-template/)
# Badge Readme Profile
* [README.md 10초만에 깔끔하게 만드는 법](https://gomcine.tistory.com/entry/READMEmd-10%EC%B4%88%EB%A7%8C%EC%97%90-%EA%B9%94%EB%81%94%ED%95%98%EA%B2%8C-%EB%A7%8C%EB%93%9C%EB%8A%94-%EB%B2%95?category=624615)
* [Building a self-updating profile README for GitHub](https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/)
* [How to Create an Impressive GitHub Profile README - SitePoint](https://www.sitepoint.com/github-profile-readme/)
* [Unlocking GitHub's Hidden Feature in 3 Minutes - YouTube](https://www.youtube.com/watch?v=0_RDoNJ1zGg)
* [Github Profile Readme로 프로필 꾸미기 · 어쩐지 오늘은](https://zzsza.github.io/development/2020/07/10/make-github-profile-readme/)
* [github profile 예쁘게 꾸미기](https://velog.io/@woo0_hooo/Github-github-profile-%EA%B0%84%EC%A7%80%EB%82%98%EA%B2%8C-%EA%BE%B8%EB%AF%B8%EA%B8%B0)
* [README Badge를 커스텀 해보자!](https://velog.io/@juunini/README-Badge%EB%A5%BC-%EC%BB%A4%EC%8A%A4%ED%85%80-%ED%95%B4%EB%B3%B4%EC%9E%90)
* [Github Profile에 사용하는 Badge API 만들기 (Kaggle Badge)](https://ansubin.com/github-profile-kaggle-badge/)
* [How to Build the Best Github Profile for Your Job Search - Qvault](https://qvault.io/jobs/build-github-profile/)
* [Private Profiles | GitHub Changelog](https://github.blog/changelog/2022-04-21-private-profiles/)
* [토이 프로젝트 깃허브 프로필에 최신 포스트 자동 업데이트하기](https://yeonyeon.tistory.com/293)
* [Github 프로필 꾸미기](https://velog.io/@colorful-stars/Github-%ED%94%84%EB%A1%9C%ED%95%84-%EA%BE%B8%EB%AF%B8%EA%B8%B0)
* [fiddly: Create beautiful and simple HTML pages from your Readme.md files](https://github.com/SaraVieira/fiddly)
* [Fiddly - Readme를 예쁜 웹페이지로 만들기 | GeekNews](https://news.hada.io/topic?id=4688)
* [github-readme-stats: Dynamically generated stats for your github readmes](https://github.com/anuraghazra/github-readme-stats)
# Blocks
* [GitHub Blocks](https://blocks.githubnext.com/)
* [GitHub의 저장소 기능을 확장할 수 있는 Blocks :: Outsider's Dev Story](https://blog.outsider.ne.kr/1658)
# Book
* [Git 좀 잘 써보자](https://wikidocs.net/book/1902)
* [더북(TheBook): Git 교과서](https://thebook.io/080212/)
* [git-scm.com/book/ko/v1](https://git-scm.com/book/ko/v2/)
* [Git TextBook | 깃 개념 잡기](https://git.jiny.dev/text/concept/)
* [확장본#3 - 깃옵스(GitOps)를 여행하려는 입문자를 위한 안내서.pdf](https://github.com/sysnet4admin/_Book_k8sInfra/blob/main/docs/%ED%99%95%EC%9E%A5%EB%B3%B8%233%20-%20%EA%B9%83%EC%98%B5%EC%8A%A4(GitOps)%EB%A5%BC%20%EC%97%AC%ED%96%89%ED%95%98%EB%A0%A4%EB%8A%94%20%EC%9E%85%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%9C%84%ED%95%9C%20%EC%95%88%EB%82%B4%EC%84%9C.pdf)
# Codespaces
* [GitHub Codespaces](https://github.com/features/codespaces)
* Codespaces가 유료임에도 GitHub의 Team이나 Enterprise Cloud 플랜을 사용하는 사람이자 조직만 Codespaces 사용 가능
* Codespaces를 사용하려면 org 설정에서 활성화를 해주어야 하고 사용한 만큼 비용을 지불하는 구조
* [GitHub Codespaces 살펴보기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1497)
* [GitHub Codespaces의 개발 환경 설정하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1509)
* [GitHub’s Engineering Team has moved to Codespaces | The GitHub Blog](https://github.blog/2021-08-11-githubs-engineering-team-moved-codespaces/)
* GitHub 엔지니어링 팀이 GitHub.com 개발 환경을 GitHub Codespaces로 변경. Codespaces는 VS Code를 이용해서 클라우드 개발환경을 제공하는 GitHub 기능
* 이전에는 로컬 macOS 환경에서 GitHub.com 개발, 개발환경 설정에 스크립트 이용, 열심히 관리했지만 자주 깨지고 유지하기가 어려움
* 다른 컴퓨팅 환경처럼 개발환경도 쉽게 띄우고 교체할 수 있는 환경으로 넘어가기 위해 Codespaces 도입, 로컬에서 45분 걸리던 개발환경 설정을 5분으로
* GitHub.com 코드 베이스가 너무 커서 shallow 클론을 진행하고 나이틀리 빌드로 devcontainer를 미리 만들어 놓고 사용하면서 5분까지 줄였으나 여기서 더 개선하기 위해 사전빌드를 진행해서 10초까지 줄임
* 이제 새 직원이 와도 10초 만에 개발환경을 띄울 수 있게 되었고 VM의 리소스 한 줄만 바꾸면 모든 개발자가 더 좋은 컴퓨팅 환경에서 개발 가능
* [공개된 GitHub Codespaces 살펴보기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1565)
* [Github Codespaces가 Backend.AI를 만났을 때 | Lablup Blog](https://blog.lablup.com/posts/2021/09/13/backend.ai-on-codespaces)
* [GitHub Codespace 환경 개인화하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1573)
* [Github Codespaces와 Devcontainer 톺아보기 | 애저한발짝 - YouTube](https://www.youtube.com/watch?v=lyLvySi5tuE)
* [Codespaces for multi-repository and monorepo scenarios | The GitHub Blog](https://github.blog/2022-04-20-codespaces-multi-repository-monorepo-scenarios/)
* GitHub의 클라우드 개발환경이 코드스페이스에서 마이크로서비스로 인해 개발할 때 다른 저장소가 필요한 상황이 많아서
* 이를 지원하기 위해 `devcontainer.json`에서 `customizations.codespaces.repositories` 키로 다른 저장소 권한 설정 가능해 저장소를 클론하기 위해 개인 엑세스 키를 설정 필요 제거
* 또한 모노레포 프로젝트에서는 팀마다 다른 코드스페이스 환경이 필요하기 때문에 여러 `devcontainer.json`를 지정할 수 있게 되어 `.devcontainer/${DIR}/devcontainer.json` 형식 지정 가능
* [GitHub Codespaces의 Development Containers 살펴보기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1643)
* [JetBrains IDE로 GitHub Codespaces 사용하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1656)
* [One Click Into GitHub Codespaces | GitHub Changelog](https://github.blog/changelog/2023-04-24-one-click-into-github-codespaces/)
* 프로젝트의 Codespace를 GitHub 외부에서 바로 열 수 있는 Deep 링크 기능이 추가되어 링크나 버튼을 외부에 공유 가능
* 추가로 Codespace를 실행할 때 추천 시크릿을 보여주는 기능이 추가되었고 Dev Container에 이름을 지정 가능
# Command
* [**Git 팁 모음집 (https://github.com/git-tips/tips 한국어 버전)**](https://github.com/mingrammer/git-tips)
* [Git 명령어 정리](https://medium.com/@joongwon/git-git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-c25b421ecdbd)
* [Git 명령어 모음](https://velog.io/@delilah/GitHub-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C)
* [practice - Git command overview](https://gist.github.com/hyunjun/02f945830bda15267f90762c8763a759#gistcomment-3642143)
* [**Oh shit, git!**](http://ohshitgit.com/) 실수했을 때 case별 대처법
* [내 시간을 절약하는 소중한 git 명령어들](http://sunphiz.me/wp/archives/2558)
* [Now that you’re not afraid of GIT anymore, here’s how to leverage what you know](https://medium.freecodecamp.org/now-that-youre-not-afraid-of-git-anymore-here-s-how-to-leverage-what-you-know-11e710c7f37b)
* merge, remote, push, pull, reset
* [Personalizing GIT: Aliasing commands](https://koukia.ca/personalizing-git-aliasing-commands-4dda73b54081)
* [An intro to Git Aliases: a faster way of working with Git](https://medium.freecodecamp.org/an-intro-to-git-aliases-a-faster-way-of-working-with-git-b1eda81c7747)
* [8 Git aliases that make me more efficient | Opensource.com](https://opensource.com/article/20/11/git-aliases)
* [Git Operations Fail - Permission denied - publickey](https://confluence.atlassian.com/stashkb/git-operations-fail-permission-denied-publickey-385909210.html)
* [GitHub 단축키 및 사용 팁 정리](https://gomcine.tistory.com/entry/GitHub-%EB%8B%A8%EC%B6%95%ED%82%A4-%EB%B0%8F-%EC%82%AC%EC%9A%A9-%ED%8C%81-%EB%AA%87-%EA%B0%80%EC%A7%80-%EC%86%8C%EA%B0%9C)
* [깃헙 더 잘 쓰는 팁 세가지](https://www.youtube.com/watch?v=pAS84ZJF-Fg)
* [GIT CLI 수업 명령어 정리와 나의 GIT 워크플로우](https://blog.naver.com/infobag/221527800322)
* [GitHub Privacy 101: How to remove personal emails from your public repos](https://medium.freecodecamp.org/github-privacy-101-how-to-remove-personal-emails-from-your-public-repos-58347b06a508)
* [Learn basics of Version Control & Git Commands in less than 10 minutes](https://hackernoon.com/learn-basics-of-version-control-git-commands-in-less-than-10-minutes-9769d3147410)
* [Git Fu Developing](https://www.youtube.com/watch?v=f-Br8cud2eI)
* [Git 커맨드라인 환경에서 GUI 부럽지 않게 사용할 수 있는 몇가지 팁](http://www.mimul.com/pebble/default/2019/08/23/1566550403384.html) fzf + peco
* [Stop Using the Git CLI](https://medium.com/better-programming/stop-using-the-git-cli-d9cbee32cc27)
* [Git CLI — Basic Set of Commands](https://levelup.gitconnected.com/git-cli-basic-set-of-commands-ddb91abecb32)
* [Git 사용 중 자주 만나는 이슈 정리](https://parksb.github.io/article/28.html)
* [커밋 히스토리를 이쁘게 단장하자](https://evan-moon.github.io/2019/08/30/commit-history-merge-strategy/) merge, squash, rebase
* [Always Squash and Rebase your Git Commits](https://blog.carbonfive.com/2017/08/28/always-squash-and-rebase-your-git-commits/)
* [**깃 사용자가 가장 흔히 저지르는 6가지 실수와 대처 방법**](http://www.itworld.co.kr/news/142318)
* [Git 명령어 중 자주 사용하는 것들 모음](https://developer88.tistory.com/290)
* [CS Visualized: Useful Git Commands](https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1)
* [Syncing a fork](https://help.github.com/articles/syncing-a-fork/)
* [fork repository 최신 버전으로 유지하기](https://jybaek.tistory.com/775)
* [Keeping a fork up to date](https://gist.github.com/CristinaSolana/1885435)
* [fork한 저장소를 최신 원본과 동기화시키기](https://junwoo45.github.io/2019-09-01-git_upstream/)
* [Learning Git: 5 Shortcuts to Improve Your Coding Speed](https://levelup.gitconnected.com/learning-git-shortcuts-1267fb689f4a)
* [Git in the office](https://jusths.tistory.com/162) checkout rebase fetch merge
* [비슷하지만 꼭 구별해야하는 Git 커맨드 (git fetch vs git pull, git merge vs git rebase)](https://blog.naver.com/codeitofficial/221948794594)
* [Git가지고 놀기(3) - 파일 영원히 지우기. - 완두블로그](https://wani.kr/posts/2015/02/02/git-3-remove-file-forever/)
* [Improve your Git skill by learning Git Commands that everyone should really know](https://medium.com/@bryantjiminson/improve-your-git-skill-by-learning-git-commands-that-everyone-should-really-know-706972a70c4f)
* [Git 초보를 위한 깃 명령어 & 용어 정리 (+커밋 히스토리 브랜치 그래프 보는법, Git Log 옵션 종료, 단축 명령어 Alias 설정, 터미널 커맨드라인): 네이버블로그](http://blog.naver.com/jdusans/222043705693)
* [7 Git Commands/Concepts you may do not know yet | by GP Lee | JavaScript In Plain English | Jul, 2020 | Medium](https://medium.com/javascript-in-plain-english/7-git-commands-concepts-you-may-do-not-know-yet-d0aa9dbee7b1)
* [15 Git Commands To Master Before Your Very First Project | by AnBento | Level Up Coding](https://levelup.gitconnected.com/15-git-commands-you-should-learn-before-your-very-first-project-f8eebb8dc6e9)
* [**7 Git tricks that changed my life | Opensource.com**](https://opensource.com/article/20/10/advanced-git-tips)
```
$ git config --global help.autocorrect 1 # 오타 자동 교정
$ git rev-list --count master # 커밋 세기
$ git gc --prune=now --aggressive # Repo 최적화
$ git ls-files --others --exclude-standard -z | xargs -0 tar rvf ~/backup-untracked.zip # 추적제외 파일 백업하기
$ cat .git/description # .git 폴더 이해하기
$ git show main:README.md # 다른 브랜치 파일 보기
$ git rev-list –all | xargs git grep -F ‘font-size: 52 px;’ # Git 검색하기
```
* [How to Undo Mistakes With Git Using the Command Line - YouTube](https://www.youtube.com/watch?v=lX9hsdsAeTk)
* [🌳🚀 CS Visualized: Useful Git Commands - DEV Community](https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1)
* [익숙해지면 좋을 깃(git) 명령어 모음집](https://tech.urbanbase.com/dev/2021/01/15/GitCommand.html)
* [4 tips for context switching in Git | Opensource.com](https://opensource.com/article/21/4/context-switching-git) stash + branch, WIP commit + branch, new repository clone, worktree, rev-parse
* [**Code Review from the Command Line – Jake Zimmerman**](https://blog.jez.io/cli-code-review/)
* `hub pr checkout`, `git stat`, `git heatmap`, `git depgraph`, `git review`, `git reviewone`
* [About basic Git commands. Git is an open-source distributed… | by Jony Choi | Jan, 2022 | Medium](https://jonychoi.medium.com/about-basic-git-commands-6bdad9cfc8fa)
* [5 Git Commands pro should know #youtubeshort #gitcommand #Shorts #command #Git #viral - YouTube](https://www.youtube.com/watch?v=YaPihR2Y6nI)
* [실무에서 사용하는 명령어들을 빠르게 알아보자 (1)](https://velog.io/@couchcoding/Git-%EC%8B%A4%EB%AC%B4%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%93%A4%EC%9D%84-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-1)
* [Git Commands Cookbook. In this blog, I will provide you all… | by Samarth Narula | Sep, 2022 | Medium](https://medium.com/@samarthnarula13/git-commands-cookbook-ce309de6f530)
* [Git 200% 활용하기 | 요즘IT](https://yozm.wishket.com/magazine/detail/1743/)
* [개발팀 퇴근시간을 앞당겨줄 Git, Github 팁 | 요즘IT](https://yozm.wishket.com/magazine/detail/1796/)
* [20 Git Commands you (probably) didn't know about 🧙♂️ - DEV Community 👩💻👨💻](https://dev.to/lissy93/20-git-commands-you-probably-didnt-know-about-4j4o)
* [번역 당신이 (아마도) 몰랐던 20가지 Git 명령 🧙](https://velog.io/@surim014/20-git-commands-you-probably-didnt-know-about-git)
* [당신이 (아마도) 몰랐던 20가지 Git 명령 번역 | GeekNews](https://news.hada.io/topic?id=8153)
* [실무에서 사용했던 git 정리](https://phrygia.github.io/git/2023-03-03-git/) remote branch rebase cherry-pick reset 등
* [앗! 모르고 깃헙(GitHub)에 올렸어요!. 깃 내부 작동 방식과 함께 살펴보는 revert, reset 명령어… | by weekwith.me | 당근마켓 테크 블로그 | Apr, 2023 | Medium](https://medium.com/daangn/%EC%95%97-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EA%B9%83%ED%97%99-github-%EC%97%90-%EC%98%AC%EB%A0%B8%EC%96%B4%EC%9A%94-50d48b343f0f) reset revert gitguardian
* [자주 사용하는 용어와 커맨드를 제대로 알아보자](https://velog.io/@skyu_dev/Git-Git-GitHub-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC-add-commit-push-%EB%A1%9C%EB%B4%87%EC%97%90%EC%84%9C-%EB%B2%97%EC%96%B4%EB%82%98%EA%B8%B0)
* `add`
* [Undo 'git add' before commit](http://stackoverflow.com/questions/348170/undo-git-add-before-commit) `git reset <files>`
* [git add -p Is a Gamechanger in File Management](https://medium.com/better-programming/git-add-p-is-a-gamechanger-in-file-management-e4c879e89ab)
* `amend`
* [Rewriting history git commit --amend git rebase git rebase -i git reflog](https://www.atlassian.com/git/tutorials/rewriting-history)
```
$ git commit -m "Some message..."
# Change something
$ git add [file]
$ git commit --amend -m "Some message..." # fix up the most recent commit
```
* `git add [the_left_out_file]; git commit --amend --no-edit` [How to add a file to the last commit in git?](https://stackoverflow.com/questions/40503417/how-to-add-a-file-to-the-last-commit-in-git)
* bisect
* [The git's guide to git: Bisect](http://rkoutnik.com/articles/The-gits-guide-to-git-Bisect.html)
* [GIT BISECT를 이용하여 버그발생시점 찾아내기](https://iamsang.com/blog/2014/03/02/git-bisect/)
* [git bisect 로 문제가 발생한 commit 빠르고 쉽게 찾기](https://blog.gangnamunni.com/2020/04/13/understanding_git_bisect.html)
* [7.10 Git 도구 - Git으로 버그 찾기](https://git-scm.com/book/ko/v2/Git-도구-Git으로-버그-찾기)
* [Fortunately, I don't squash my commits](https://blog.ploeh.dk/2020/10/05/fortunately-i-dont-squash-my-commits/)
* `blame` [git-blame-someone-else: Blame someone else for your bad code](https://github.com/jayphelps/git-blame-someone-else)
* `branch`
* [learngitbranching.js.org](http://learngitbranching.js.org/)
* [Git 브랜치 배우기](http://pcottle.github.io/learnGitBranching/)
* [Git 브랜치 배우기](http://learnbranch.urigit.com/)
* [**Git을 이용한 협업 워크플로우 배우기**](http://blog.appkr.kr/learn-n-think/comparing-workflows/)
* [A successful Git branching model](http://nvie.com/posts/a-successful-git-branching-model/)
* [git feature branch 모델 프로젝트 적용기](https://ash84.net/2017/05/15/git-feature-branch-model-usage/)
* [git-flow cheatsheet](http://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html)
* [Git Flow와 자주 사용하는 명령어들](https://www.holaxprogramming.com/2017/08/26/devops-git-commands/)
* [우린 Git-flow를 사용하고 있어요](http://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html)
* [Git Flow Integration으로 Git Flow 심플하게 운영하기](http://jojoldu.tistory.com/268)
* [practice - git flow](https://gist.github.com/hyunjun/760bfd0bc354fce34a320f2895518798#file-git_flow-md)
* [Introducing GitFlow](https://datasift.github.io/gitflow/IntroducingGitFlow.html)
* [GitFlow considered harmful](http://endoflineblog.com/gitflow-considered-harmful)
* [Issues with git-flow](http://scottchacon.com/2011/08/31/github-flow.html)
* [들어도 봤고, 쓰고도 있는데... GitFlow 제대로 알고 쓰기](https://blog.gangnamunni.com/2020/03/23/understanding_git_flow.html)
* [충돌 없는 Git을 위해 Git Flow에 대해 알아보자](https://velog.io/@couchcoding/%EC%B6%A9%EB%8F%8C-%EC%97%86%EB%8A%94-Git%EC%9D%84-%EC%9C%84%ED%95%B4-Git-Flow%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90)
* [git flow model - YouTube](https://www.youtube.com/watch?v=EzcF6RX8RrQ)
* [git-flow 소개, 설치 및 사용법](https://hbase.tistory.com/60)
* [git flow - 출시와 개발을 동시에 진행하는 방법 - YouTube](https://www.youtube.com/watch?v=w2F8O9J1keM)
* [Gitflow-toolkit: A Simple toolkit for GitFlow](https://morioh.com/p/b80bb1f2b7aa)
* [Understanding the GitHub flow](https://guides.github.com/introduction/flow/)
* [Git 브랜칭 전략 : Git-flow와 Github-flow :: 갓우리코딩](https://hellowoori.tistory.com/56)
* [GitHub Flow explain](https://www.youtube.com/watch?v=x-b_ij22vWg)
* [GitHub Flow - demo](https://www.youtube.com/watch?v=GeFkVB8w7uM)
* [15 Tips to Enhance your Github Flow](https://hackernoon.com/15-tips-to-enhance-your-github-flow-6af7ceb0d8a3)
* [Git Flow Is A Bad Idea - YouTube](https://www.youtube.com/watch?v=_w6TwnLCFwA) git flow 반대. CI/CD를 위해 master의 매 commit이 production이 되어야 하고, 그게 delivery의 시작점이라고 주장
* [Git Flow Is A Bad Idea • Dave Farley • GOTO 2021 - YouTube](https://www.youtube.com/watch?v=JOr4QeIjyW4)
* [Git Flow에서 트렁크 기반 개발으로 나아가기 - 맘시터 기술블로그](https://tech.mfort.co.kr/blog/2022-08-05-trunk-based-development/)
* [매일 배포하는 팀이 되는 여정(1) — 브랜치 전략 개선하기 | by Jeremy | 당근마켓 팀블로그 | Apr, 2023 | Medium](https://medium.com/daangn/%EB%A7%A4%EC%9D%BC-%EB%B0%B0%ED%8F%AC%ED%95%98%EB%8A%94-%ED%8C%80%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%97%AC%EC%A0%95-1-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EC%A0%84%EB%9E%B5-%EA%B0%9C%EC%84%A0%ED%95%98%EA%B8%B0-1a1df85b2cff)
* 잦은 배포를 위해서 브랜치 전략을 공부하고 배포 과정을 개선해 나간 경험
* Git Flow 전략을 쓰면서 정기 배포일을 정해놓고 배포하고 있었는데 한 번에 너무 많은 변경 사항이 같이 나가다 보니 추적도 어려웠고 배포도 점점 부담되어서 Git Flow의 단점이 보이기 시작해서 브랜치 전략을 공부
* main 브랜치를 mainline으로 사용하는 GitHub Flow와 Trunk-Based 브랜치 전략을 공부
* GitHub flow를 선택하고 배포 과정이 훨씬 나아졌다고 함
* [(알아두면 개발팀장가능) GitFlow vs Trunk-based 협업방식 - YouTube](https://www.youtube.com/watch?v=EV3FZ3cWBp8)
* [형상관리 전략정리](https://chodragon9.github.io/blog/git-scm-experience/)
* [효율적인 협업을 위한 Git Branching 전략](https://harrydrippin.github.io/programming/2017/07/03/git-branching-strategy.html)
* [An Efficient Git Branching Strategy Every Developer Should Know | by Anurag Sidana | Better Programming | Medium](https://medium.com/better-programming/efficient-git-branching-strategy-every-developer-should-know-f1034b1ba041)
* [브랜칭 전략 소개 : Ship / Show / Ask :: 자바캔(Java Can Do IT)](https://javacan.tistory.com/entry/branching-strategy-Ship-Show-Ask)
* [브랜치 전략 수립을 위한 전문가의 조언](https://www.linkedin.com/pulse/014-%25EB%25B8%258C%25EB%259E%259C%25EC%25B9%2598-%25EC%25A0%2584%25EB%259E%25B5-%25EC%2588%2598%25EB%25A6%25BD%25EC%259D%2584-%25EC%259C%2584%25ED%2595%259C-%25EC%25A0%2584%25EB%25AC%25B8%25EA%25B0%2580%25EC%259D%2598-%25EC%25A1%25B0%25EC%2596%25B8-%25ED%2598%2584%25EC%259E%25AC-%25EC%259D%25B4/)
* [Git Branch - 릴리즈 플래닝 - 회사에서 하고 있는 걸 정리해본다](http://thdev.tech/android/git/2018/01/21/Git-Branch.html)
* [deploy 브랜치 전략 활용 방법](https://medium.com/daangn/deploy-브랜치-전략-활용-방법-545f278ca878)
* [Jeremy's Blog | 우리 팀에 맞는 Git Branch 전략 선택하기](https://sungjk.github.io/2023/02/20/branch-strategy.html)
* [**Git을 이용한 협업 워크플로우**](https://lhy.kr/git-workflow)
* [**메시징 서버 개발 프로세스 개선**](https://engineering.linecorp.com/ko/blog/improving-the-messaging-server-development-process)
* create new branch
```
git branch [new branch]
...
git remote add [new branch] remotes/origin/[new branch]
git push origin [new branch]
```
* `git push origin --delete [branch name]` [Delete Remote Branch](http://stackoverflow.com/questions/2003505/how-to-delete-a-git-branch-both-locally-and-remotely)
* `git branch -d [branch name]` [How to delete a Git branch both locally and remotely?](http://stackoverflow.com/questions/2003505/how-to-delete-a-git-branch-both-locally-and-remotely)
* `git checkout -b [branch name] remotes/[repository name]/[branch name]` [How to check out a remote Git branch?](http://stackoverflow.com/questions/1783405/how-to-check-out-a-remote-git-branch)
* `filter-branch` [GitHub 잔디밭 꾸미기 포기 · 감자도스](https://blog.potados.com/writings/grass-hole-is-okay/)
* [git에서 다른 브랜치의 특정 파일만 체크아웃하기](https://johngrib.github.io/wiki/git-checkout-specific-files/)
* [Rename a local and remote branch in git](https://multiplestates.wordpress.com/2015/02/05/rename-a-local-and-remote-branch-in-git/)
* [git push -u origin master의 비밀](https://blog.naver.com/codeitofficial/221946628621)
* [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html)
* [Git의 기본 브랜치를 master에서 main으로 변경하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1503)
* [이상현 IN 베를린 :: 깃헙의 main 브랜치에 반대하는 이유](https://iamsang.com/blog/2020/11/11/github-and-main-branch/)
* [GitHub에서 기본 브랜치 변경하는 명령어 살펴보기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1598)
* [Git branch 톺아보기 - branch를 확인/생성/삭제](https://xtring-dev.tistory.com/entry/Git-Git-branch-%ED%86%BA%EC%95%84%EB%B3%B4%EA%B8%B0-branch%EB%A5%BC-%ED%99%95%EC%9D%B8%EC%83%9D%EC%84%B1%EC%82%AD%EC%A0%9C)
* [Git에서의 branch name을 대신하는 '-' (hyphen)](https://jusths.tistory.com/230)
* [How to Delete Branches in Git | Erik August Johnson](https://www.eaj.io/articles/deleting-a-git-branch/)
* [How to delete all merged git branches with one terminal command](https://whitep4nth3r.com/blog/delete-all-merged-git-branches-one-terminal-command/)
* [Git Branch Naming Conventions | For Beginners - YouTube](https://www.youtube.com/watch?v=9o3RLcGUOfk)
* [git-branchless: High-velocity, monorepo-scale workflow for Git](https://github.com/arxanas/git-branchless)
* [Git-Branchless - 브랜치를 사용하지 않는 Git 워크플로우 지원 도구 모음 | GeekNews](https://news.hada.io/topic?id=6970)
* checkout
* `git checkout [branch name] -- [file name]` [checkout specific files from another branch](http://nicolasgallagher.com/git-checkout-specific-files-from-another-branch/)
* `git checkout HEAD -- path/to/file.txt` [Find and restore a deleted file in a Git repository](http://stackoverflow.com/questions/953481/find-and-restore-a-deleted-file-in-a-git-repository)
* 상황
* old/path/file.txt를 `git mv file.txt new/path`를 사용해 new/path/file.txt로 변경
* 다시 old/path/file.txt로 변경하고 싶어서 `git reset new/path/file.txt`를 실행했다가 new/path에서는 사라지고 old/path에도 복원되지 않은 경우 사용
* cherry-pick
* [Git 체리픽(cherry-pick) 사용법](https://awesomezero.com/post/git-cherry-pick/)
* [작업단위 커밋 정복을 위한 rebase와 cherry-pick](https://blog.naver.com/pjt3591oo/222313140460)
* clean
* `git clean -fd` [git이 추적하지 않는 untracked files 한꺼번에 삭제하기](https://blog.outsider.ne.kr/1164?category=18)
* clone
* `git clone https://[username]:'[password]'@github.com/[username]/[repository]` enclose password in quotes if password has special characters
* `git clone git@github.com:[id]/[repository].git`
* [Git 저장소 복제 (부제: 쌍둥이 저장소 만들기)](https://velog.io/@king/Git-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%B3%B5%EC%A0%9C-%EB%B6%80%EC%A0%9C-%EC%8C%8D%EB%91%A5%EC%9D%B4-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0-p6k5c7jkah)
* [What's the best practice to “git clone” into an existing folder?](https://stackoverflow.com/questions/5377960/whats-the-best-practice-to-git-clone-into-an-existing-folder/36084134?stw=2#36084134)
* [5분 따라하기 기존 폴더를 git으로 관리하는 최선의 방법](https://jhrogue.blogspot.com/2020/05/5-git.html)
* [Get up to speed with partial clone and shallow clone - The GitHub Blog](https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/)
* `commit`
* [did you know you can appear to commit as anyone?](https://github.com/amoffat/masquerade)
* [Blinking Commits](http://blog.annharter.com/2015/08/12/blinking-commits.html)
* [undo a commit and redo](http://stackoverflow.com/questions/927358/how-do-you-undo-the-last-commit)
```
$ git commit -m "Something terribly misguided" (1)
$ git reset [--soft|--hard] HEAD~ (2)
<< edit files as necessary >> (3)
$ git add ... (4)
$ git commit -c ORIG_HEAD (5)
```
* [Git commit 이력 깔끔하게 관리하기](http://inspiredjw.com/entry/Git-commit-%EC%9D%B4%EB%A0%A5-%EA%B9%94%EB%81%94%ED%95%98%EA%B2%8C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0)
* [git commit 메시지에 #이슈번호 형태로 쓰기](http://www.popit.kr/tip-git-commit-%EB%A9%94%EC%8B%9C%EC%A7%80%EC%97%90-%EC%9D%B4%EC%8A%88%EB%B2%88%ED%98%B8-%ED%98%95%ED%83%9C%EB%A1%9C-%EC%93%B0%EA%B8%B0/)
* [prepare-commit-msg 깃훅으로 커밋 메시지에 이슈 번호 넣기](http://ohgyun.com/746)
* [Git 커밋 상태를 확인하기 위한 쉘 스크립트](https://rhostem.github.io/posts/2018-06-12-shellscript-to-check-commit/)
* [Changing a commit message](https://help.github.com/articles/changing-a-commit-message/)
* [좋은 git commit 메시지를 위한 영어 사전](https://blog.ull.im/engineering/2019/03/10/logs-on-git.html)
* [좋은 커밋 메시지를 작성하기 위한 커밋 템플릿 만들어보기](https://junwoo45.github.io/2020-02-06-commit_template/)
* [Use a Git commit message template to write better commit messages](https://gist.github.com/lisawolderiksen/a7b99d94c92c6671181611be1641c733)
* [더 나은 커밋 메시지를 작성하기 위한 Git 커밋 메시지 템플릿 | GeekNews](https://news.hada.io/topic?id=5745)
* [Git 커밋 메시지 컨벤션은 왜 중요할까? | 요즘IT](https://yozm.wishket.com/magazine/detail/1974/)
* [깃(Git) 커밋 가이드](https://blog.tinkhub.com/git/git-commit-discipline.html)
* [깃(Git) 커밋 가이드](https://tech.10000lab.xyz/git/git-commit-discipline.html)
* [git commit accepts several message flags (-m) to allow multiline commits](https://www.stefanjudis.com/today-i-learned/git-commit-accepts-several-message-flags-m-to-allow-multiline-commits/)
* [git commit author 변경 (커밋 작성자 변경하기)](https://madplay.github.io/post/change-git-author-name)
* [Commits are snapshots, not diffs - The GitHub Blog](https://github.blog/2020-12-17-commits-are-snapshots-not-diffs/)
* [Conventional Commits](https://www.conventionalcommits.org/ko/v1.0.0-beta.4/)
* [Commit Often, Perfect Later, Publish Once—Git Best Practices](https://sethrobertson.github.io/GitBestPractices/)
* [Things I wish Git had: Commit groups](http://blog.danieljanus.pl/2021/07/01/commit-groups/)
* [Why should I write good commit messages? | by Ankit Muchhala | The Startup | Medium](https://medium.com/swlh/why-should-i-write-good-commit-messages-e15d37bf45cb)
* [How Square writes commit messages | Square Corner Blog](https://developer.squareup.com/blog/how-square-writes-commit-messages/)
* [커밋이 깃허브에 제대로 표시되지 않을 때 해결방법 - AnyDoc](https://dev.alliknow.info/posts/2023/5/github-contribution-not-showing)
* [Commitizen](https://github.com/commitizen)
* [Commitizen으로 커밋, 버전 관리하기](https://dailyheumsi.tistory.com/266)
* `config`
* basics
```
$ git config --global url."https://github.com/".insteadOf git://github.com/
$ git config --global http.proxy http://...
$ git config --global https.proxy http://...
$ git config -l
... # do some necessary work
$ git config --global --unset url.https://github.com/.insteadof
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
```
* 한 컴퓨터에서 두 개의 서로 다른 github 계정을 사용하고 싶은 경우 [Specify private SSH-key to use when executing shell command with or without Ruby?](http://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command-with-or-without-ruby)
```
$ ssh-keygen -t rsa -C "another@email.com" # create one more ssh key
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/myaccount/.ssh/id_rsa): id_rsa_another
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_another.
...
$ mv id_rsa_another* ~/.ssh/
$ ls ~/.ssh/
id_rsa id_rsa.pub id_rsa_another
id_rsa_another.pub known_hosts
$ vi ~/.ssh/config
# Default GitHub
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# GitHub
Host another.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_another
$ ssh-add ~/.ssh/id_rsa_another
Identity added: /Users/myaccount/.ssh/id_rsa_another (/Users/myaccount/.ssh/id_rsa_another)
$ ssh-add ~/.ssh/id_rsa
Identity added: /Users/myaccount/.ssh/id_rsa (/Users/myaccount/.ssh/id_rsa)
$ ssh-add -l
2048 SHA256:... /Users/myaccount/.ssh/id_rsa_another (RSA)
4096 SHA256:... /Users/myaccount/.ssh/id_rsa (RSA)
$ ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
$ ssh -T git@another.github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
$ git clone git@another.github.com:<github_another_id>/<repository>.git
```
* `git config credential.helper store` [How to save username and password in git](https://stackoverflow.com/questions/35942754/how-to-save-username-and-password-in-git)
* [깃의 config](http://sunphiz.me/wp/archives/2300)
* [깃헙 서로 다른 저장소를 같은 서버에 배포시 배포 키 중복 오류](https://hyeonseok.com/soojung/dev/2017/06/21/820.html)
* [윈도우 git 체크아웃 Filename too long 오류 처리](http://javacan.tistory.com/entry/window-git-filename-too-long-error)
* [ssh: connect to host github.com port 22: Connection timed out](https://stackoverflow.com/questions/15589682/ssh-connect-to-host-github-com-port-22-connection-timed-out)
* [SSH 기본 포트를 쓸 수 없을 때 Github에 SSH 연결하기 - AnyDoc](https://dev.alliknow.info/posts/2023/5/github-without-ssh-port)
* [Git 설정 파일 팀원들과 공유하기](https://www.jiwon.me/share-git-config/)
* deps
* [Git Deps for Clojure](https://clojure.org/news/2018/01/05/git-deps)
* `diff`
* `git --no-pager diff` for long line over 80 columns
* [git diff handling long lines](http://stackoverflow.com/questions/136178/git-diff-handling-long-lines)
* `git diff ... --name-only`
* `git diff <commit1> <commit2> <filename>` [How to diff the same file between two different commits on the same branch?](http://stackoverflow.com/questions/3338126/how-to-diff-the-same-file-between-two-different-commits-on-the-same-branch)
* `git diff <branch1>..<branch2> -- <filename>` branch간 특정 file 비교
* `gitub.com/<id>/<repo>/compare/<branch1>...<branch2>` browser에서 비교
* [Git가지고 놀기(2) - Git Diff - 완두블로그](https://wani.kr/posts/2014/07/15/git-2-git-diff/)
* [Better git diffs with FZF. git diff can be a little overwhelming… | by Rafael Mendiola | Medium](https://medium.com/@GroundControl/better-git-diffs-with-fzf-89083739a9cb)
* [Better Git diff output for Ruby, Python, Elixir, Go and more | tekin.co.uk](https://tekin.co.uk/2020/10/better-git-diff-output-for-ruby-python-elixir-and-more) .gitattributes
* [Git diff Command – How to Compare Changes in Your Code](https://www.freecodecamp.org/news/git-diff-command/)
* [delta: A syntax-highlighting pager for git, diff, and grep output](https://github.com/dandavison/delta)
* filter-branch
* [git-filter-branch를 이용하여 모든 커밋으로부터 민감한 정보 파일 삭제하기](https://www.youtube.com/watch?v=wFfqKzrpWeY)
* [Git에 커밋 된 커밋하면 안될 파일 제거하기](https://chaewonkong.github.io/posts/git-remove-commited-file.html)
* [Git 원치 않는 파일 제거하기 | Univdev](https://www.univdev.page/posts/remove-git-file/)
* gitignore
* [.gitignore가 작동하지 않을때 대처법](http://jojoldu.tistory.com/307)
* [gitignore.io - 자신의 프로젝트에 꼭 맞는 .gitignore 파일을 만드세요](https://www.toptal.com/developers/gitignore)
* [Git 전역 ignore 파일](https://hyeonseok.com/soojung/dev/2019/06/29/853.html)
* [Ignoring Files and Directories in Git (.gitignore)](https://linuxize.com/post/gitignore-ignoring-files-in-git/)
* [Automatic .gitignore generation | Pega Devlog](https://jehyunlee.github.io/2020/11/07/Python-General-7-make_gitignore/)
* [이미 git으로 관리하고 있는 파일을 .gitignore에 추가했을 때, 변경해도 더 이상 추적하지 않도록 하는 방법 | Joohee Kim's Blog](https://imjhk03.github.io/posts/git-ignore-cache/)
* [내 작은 .gitconfig | DevelopersIO](https://dev.classmethod.jp/articles/my-little-gitconfig/)
* [gitignore.io - 자신의 프로젝트에 꼭 맞는 .gitignore 파일을 만드세요](https://www.gitignore.io/)
* [gitignore.io - 자신의 프로젝트에 꼭 맞는 .gitignore 파일을 만드세요](https://www.toptal.com/developers/gitignore)
* [gitignore - A collection of useful .gitignore templates](https://github.com/github/gitignore)
* grep
* [git으로 파일내용이나 커밋로그 검색하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/849)
* hook
* [husky prevents bad commit or push using Git hooks](https://github.com/typicode/husky)
* [Husky 사용할 때 주의! - 코드쓰는사람](https://taegon.kim/archives/10276)
* [husky로 git hooking하기 : 네이버 블로그](https://blog.naver.com/pjt3591oo/222803877946)
* [husky와 lint-staged를 이용한 레포지토리 관리 (포매팅/린팅) 자동화 - AnyDoc](https://dev.alliknow.info/posts/2023/5/auto-repository-management-with-husky-and-lint-staged)
* [훅으로 Git에 훅 들어가기](http://woowabros.github.io/tools/2017/07/12/git_hook.html)
* [SwiftLint와 Git Hook을 이용해서 코딩 스타일 관리하기](http://woowabros.github.io/tools/2019/08/05/swiftlint-githooks.html)
* [GitHub 커밋 메세지에 JIRA 이슈번호 자동으로 넣어주기](https://medium.com/prnd/github-커밋-메세지에-jira-이슈번호-자동으로-넣어주기-779048784037)
* [Git hook for large files: because who wants to have their 100TB data file committed to Git?](https://www.reddit.com/r/MachineLearning/comments/egadjz/p_git_hook_for_large_files_because_who_wants_to/)
* [pre-commit hooks you must know. Boost your productivity and code… | by Martin Thoma | Sep, 2020 | Towards Data Science](https://towardsdatascience.com/pre-commit-hooks-you-must-know-ff247f5feb7e)
* [**Heroku-style deployments with Docker and git tags**](https://ricardoanderegg.com/posts/git-push-deployments-docker-tags/)
* [Integrate `wemake-python-styleguide` in pre-commit git hook | by Jonathonbao | Medium](https://medium.com/@jonathonbao/integrate-wemake-python-styleguide-in-pre-commit-git-hook-872a8fc20233)
* [pre-commit 도구로 Git Hook 사용하기 | Engineering Blog by Dale Seo](https://www.daleseo.com/pre-commit/)
* [Why & How to Use Git Hooks in ReactJS Application ? - YouTube](https://www.youtube.com/watch?v=ZCXAyd5gcjA)
* [자주 쓰이는 Git 훅들 - AnyDoc](https://dev.alliknow.info/posts/2023/5/frequently-used-git-hooks)
* [`inject`](https://news.ycombinator.com/item?id=9705690) amend commits other than HEAD
* `log`
* `git log --all -- [deleted path/to/file]` [How to locate a deleted file in the commit history?](http://stackoverflow.com/questions/7203515/how-to-locate-a-deleted-file-in-the-commit-history)
* `git log --oneline --graph --all --branches --decorate`
* [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit)
* [Git log in JSON format](https://gist.github.com/varemenos/e95c2e098e657c7688fd)
* [Pretty git branch graphs](https://stackoverflow.com/questions/1057564/pretty-git-branch-graphs)
* [Visualizing branch topology in git](https://stackoverflow.com/questions/1838873/visualizing-branch-topology-in-git/34467298#34467298)
* `git log -g --grep=STRING`
* [How to search for a commit message in github?](http://stackoverflow.com/questions/18122628/how-to-search-for-a-commit-message-in-github)
* `git -L :<funcname>:<file>`
* [objective c - Git - how do I view the change history of a method/function? - Stack Overflow](https://stackoverflow.com/questions/4781405/git-how-do-i-view-the-change-history-of-a-method-function)
* `git log -p <filename>`
* [git log -p 파일 하나의 변경 이력을 한번에 보기 | edykim](https://edykim.com/ko/post/git-log-p-view-a-single-change-history-of-a-file/)
* [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/)
* [**Git 커밋 메시지 작성법**](https://item4.github.io/2016-11-01/How-to-Write-a-Git-Commit-Message/)
* [A useful template for commit messages](http://codeinthehole.com/writing/a-useful-template-for-commit-messages/)
* [Git을 이용하여 텔레파시 통하는 팀 만들기 : commit message와 commit log](http://story.haezoom.com/?p=936)
* [git 커밋 메시지 작성시 유의해야 할 점](https://developer88.tistory.com/181)
* [왜 merge 실수로 희생된 커밋이 파일 로그에서 보이지 않나?](http://ohyecloudy.com/pnotes/archives/git-file-log-history-simplification/)
* `lg`
```
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"
git config --global alias.lga "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all"
```
* `git lg`, `git lg -p` 변경사항 포함, `git lga` branch까지 함께
* [Git 커밋 히스토리를 출력할 때 꿀팁](https://blog.naver.com/codeitofficial/221944918052)
* [When it comes to git history, less is more • Stephen Brennan](https://brennan.io/2021/06/15/git-less-is-more/)
* ls-files
* [Make your monorepo feel small with Git’s sparse index | The GitHub Blog](https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/)
* 모노레포처럼 아주 큰 Git 저장소의 경우 성능을 개선하기 위해 sparse-checkout을 사용 가능
* 이때 파일의 일부만 사용하게 되지만 Git 인덱스는 여전히 워킹디렉토리의 파일 정보를 다 가지고 있음
* 2백만 개의 파일이 있는 모노레포의 경우 Git 인덱스만 해도 180MB나 될 정도로 성능에 영향
* 이런 경우 Git 인덱스도 필요한 파일만 사용하도록 --sparse-index를 사용 가능
* 이렇게 사용하면 아주 큰 모노레포에서도 작은 저장소인 것처럼 Git 명령어를 빠르게 사용 가능
* 이 명령어를 추가하게 된 배경과 성능 비교를 설명
* merge
* [How to "Merge" Specific Files from Another Branch](http://jasonrudolph.com/blog/2009/02/25/git-tip-how-to-merge-specific-files-from-another-branch/)
* `git merge --no-commit --no-ff <name>` [Is there a git-merge --dry-run option?](http://stackoverflow.com/questions/501407/is-there-a-git-merge-dry-run-option)
* `git merge <name> -X theirs` [Force Git to always choose the newer version during a merge?](http://stackoverflow.com/questions/13594344/force-git-to-always-choose-the-newer-version-during-a-merge)
* e.g. branch merge할 때 <name>의 내용으로 덮어쓰고 싶은 경우
* `git checkout HEAD -- <filename>` [Hard reset of a single file](https://stackoverflow.com/questions/7147270/hard-reset-of-a-single-file)
* e.g. merge 중에 conflict가 발생했는데, binary file이라 vi라 수정은 못하고, 이전 버전을 사용하길 원할 경우
* [practice `--ours / --theirs`](https://gist.github.com/hyunjun/760bfd0bc354fce34a320f2895518798)
* [practice - merge conflict 해결](https://gist.github.com/hyunjun/760bfd0bc354fce34a320f2895518798#file-merge_conflict-md) 변경 내역 유실 및 삭제 복구
* [practice - merge conflict 해결](https://gist.github.com/hyunjun/760bfd0bc354fce34a320f2895518798#file-merge_conflict0-md) 같은 filename으로 서로 다른 branch에서 작업한 경우(간단)
* [Git에서 conflict(충돌) 해결하기](https://blog.naver.com/codeitofficial/221938658754)
* [In a git merge, how do you just replace your version with the version git says there is a conflict with?](https://stackoverflow.com/questions/3515657/in-a-git-merge-how-do-you-just-replace-your-version-with-the-version-git-says-t)
* [git merge conflict을 어떻게 방지할까 – xacdo.net](https://xacdo.net/wp/how-to-prevent-git-merge-conflict/) branch protection rule
* [conflict(충돌) 어디까지 알고있니?](https://blog.naver.com/pjt3591oo/222573686917)
* [git conflict - 알면 기능, 모르면 사고 - YouTube](https://www.youtube.com/watch?v=wVUnsTsRQ3g)
* [git merge conflict가 발생하면 어떻게 하고 계시나요?](https://codeac.tistory.com/142)
* [**GitHub의 Merge, Squash and Merge, Rebase and Merge 정확히 이해하기**](https://meetup.toast.com/posts/122)
* [Git: merging specific files from another branch](https://www.haykranen.nl/2011/07/18/git-merging-specific-files-from-another-branch/)
* [merge a remote branch locally](https://stackoverflow.com/questions/21651185/git-merge-a-remote-branch-locally)
* [Git Merge Strategy Options and Examples](https://www.atlassian.com/git/tutorials/using-branches/merge-strategy)
* [merge - How to replace master branch in Git, entirely, from another branch? - Stack Overflow](https://stackoverflow.com/questions/2862590/how-to-replace-master-branch-in-git-entirely-from-another-branch) master에 merge한 commit들이 문제가 있는 경우 다시 다른 branch를 master에 덮어쓸 때 유용
* [Git Merge 전략 - 나호석 · Present](https://present.do/documents/62d3ac62e214362cce8a3486)
* restore
* [새 버전에 맞게 git checkout 대신 switch/restore 사용하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1505)
* [New in Git: switch and restore](https://www.banterly.net/2021/07/31/new-in-git-switch-and-restore/)
* show
* status
* `git status --porcelain` git에 추가되지 않은 file 출력
* switch
* [새 버전에 맞게 git checkout 대신 switch/restore 사용하기 :: Outsider's Dev Story](https://blog.outsider.ne.kr/1505)
* [New in Git: switch and restore](https://www.banterly.net/2021/07/31/new-in-git-switch-and-restore/)
* [git switch 명령어 | Joohee Kim's Blog](https://imjhk03.github.io/posts/git-switch/)
* undo
* [How to undo (almost) anything with Git](https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/)
* [How to undo changes in Git](https://medium.freecodecamp.org/how-to-undo-changes-in-git-e1da7930afdb)
* [5분 따라하기 git으로 undo하기(local편)](https://jhrogue.blogspot.com/2020/05/5-git-undolocal.html)
* [5분 따라하기 git으로 undo하기(remote편)](https://jhrogue.blogspot.com/2020/05/5-git-undoremote.html)
* pandoc; git으로 word file을 diff할 때 그냥 비교하면 안 되는데 이걸 markdown으로 바꿔 비교할 수 있도록 하는 명령어
* pull request
* [GitHub로 남의 프로젝트에 감놓고 배놓기](https://dogfeet.github.io/articles/2012/how-to-github.html)
* [practice - pull request](https://gist.github.com/hyunjun/d61a173e6b81c603ab02)
* [Checking Out GitHub Pull Requests Locally](http://blog.scottlowe.org/2015/09/04/checking-out-github-pull-requests-locally/)
* [Bitbucket Pull Requests](https://www.youtube.com/watch?v=ssDHUyrQ8nI)
* [Pull Request를 이용한 개발 흐름을 적용해 보고 나서](https://blog.outsider.ne.kr/1199?category=18)
* [GitHub의 Pull Request를 로컬로 가져오기](https://blog.outsider.ne.kr/1204?category=18)
* [오픈소스 git 프로젝트에 Pull Request 보내기](http://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-git-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-pull-request-%EB%B3%B4%EB%82%B4%EA%B8%B0/)
* [github 에 pull request 하기](http://jusths.tistory.com/21)
* [GitHub Pull Request가 자동으로 close되는 경우는?](https://engineering.linecorp.com/ko/blog/github-pull-request-auto-close/)
* [오픈 소스 컨트리뷰션을 위한 GitHub Fork & Pull Request](https://futurecreator.github.io/2019/03/05/github-fork-and-pull-request-process-for-open-source-contribution)
* [gitflow 사용 및 pull request 하는 방법](https://devtimothy.tistory.com/137)
* [헤이딜러 개발팀 모두가 행복한 개발/PR관리 방법 7가지](https://medium.com/prnd/%ED%97%A4%EC%9D%B4%EB%94%9C%EB%9F%AC-%EA%B0%9C%EB%B0%9C%ED%8C%80-%EB%AA%A8%EB%91%90%EA%B0%80-%ED%96%89%EB%B3%B5%ED%95%9C-%EA%B0%9C%EB%B0%9C-pr%EA%B4%80%EB%A6%AC-%EB%B0%A9%EB%B2%95-7%EA%B0%80%EC%A7%80-1d4cd5d091f0)
* [원티드랩 프론트엔드 팀의 Pull Request 양식 및 자동화 | by Chaeryn Park | 원티드 제품 팀블로그 | Mar, 2021 | Medium](https://medium.com/wantedjobs/%EC%9B%90%ED%8B%B0%EB%93%9C%EB%9E%A9-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%ED%8C%80%EC%9D%98-pull-request-%EC%96%91%EC%8B%9D-%EB%B0%8F-%EC%9E%90%EB%8F%99%ED%99%94-42e393832ffc)
* [Github에서 PR 생성 시 Reviewer 자동으로 할당하기 (feat. CODEOWNERS)](https://goodgid.github.io/Github-CODEOWNERS/)
* [번역 Art of Clean Pull Requests - 클린한 Git PR의 기술](https://blog.sonim1.com/224)
* [Pull Request Review GitHub App 을 만들어보며.. | by Maeng Sol | Aug, 2021 | Medium](https://msolo021015.medium.com/pull-request-review-github-app-%EB%A7%8C%EB%93%A4%EA%B8%B0-83fd18d7ecaa)
* [Github Pull Request시 Jest & Docker Test Code 수행하기](https://jojoldu.tistory.com/602)
* [리멤버에서 Pull Request 편리하게 사용하는 법 - DRAMA&COMPANY](https://blog.dramancompany.com/2021/11/%eb%93%9c%eb%9d%bc%eb%a7%88%ec%95%a4%ec%bb%b4%ed%8d%bc%eb%8b%88%ec%97%90%ec%84%9c-pull-request-%ed%8e%b8%eb%a6%ac%ed%95%98%ea%b2%8c-%ec%82%ac%ec%9a%a9%ed%95%98%eb%8a%94-%eb%b2%95/)
* [슬기로운 코드 리뷰 생활 with GitHub Pull Request | by Rachel Kwak (곽소현) | 직방 기술 블로그 | Medium](https://medium.com/zigbang/%EC%8A%AC%EA%B8%B0%EB%A1%9C%EC%9A%B4-%EC%BD%94%EB%93%9C-%EB%A6%AC%EB%B7%B0-%EC%83%9D%ED%99%9C-with-github-pull-request-7932b5d47c70)
* [Git pull 전략 (default, --ff-only, --rebase)](https://sanghye.tistory.com/43)
* [Github 기능 미리 써보기 (Code Review시 디렉토리 미리보기)](https://jojoldu.tistory.com/641)
* `git -C <dir> pull` [지정된 디렉토리에서 Git 명령어 실행하기 - 신현석(Hyeonseok Shin)](https://hyeonseok.com/blog/899)
* `git pull --rebase` [Don’t ever use git pull](https://orangebrother.dev/blog/dont-ever-use-git-pull)
* push
* [How to resolve a GitHub error “push declined due to email privacy restrictions” when you try to push a change | by Bryant Jimin Son | Feb, 2021 | Medium](https://bryantson.medium.com/how-to-resolve-a-github-error-push-declined-due-to-email-privacy-restrictions-when-you-try-to-b748f6ca0bcd)
* `rebase`
* ['rebaser' improves on 'git rebase -i' by adding information per commit regarding which files it touched](https://gist.github.com/koreno/5893d2d969ccb6b8341d#file-example-L17)
* [practice `--ours / --theirs`](https://gist.github.com/hyunjun/760bfd0bc354fce34a320f2895518798)
* rebase 후 remote branch update가 잘 안 되는 경우 (아직 정확히는 모르겠음)
```
git rebase -i <some commit>
git add <some conflict file>
git rebase --continue
git push origin HEAD:refs/remotes/origin/<branch name...> [-f]
git push origin HEAD:refs/heads/<branch name...> [-f]
```
* [The refs/for namespace](https://gerrit-review.googlesource.com/Documentation/concept-refs-for-namespace.html)
* [The Dark Side of the Force Push](https://willi.am/blog/2014/08/12/the-dark-side-of-the-force-push/)
* [Git Force vs Force with Lease. And When to Use Them | by Mohammad-Ali A'RÂBI | Aug, 2021 | ITNEXT](https://itnext.io/git-force-vs-force-with-lease-9d0e753e8c41)
* `--force`보다 더 안전한 `--force-with-lease`를 쓰라는 글
* `--force`는 리모트 브랜치를 망가뜨릴 수도 있으므로 다른 브랜치에 리베이스하거나, 이전 커밋 메시지를 바꾸거나 합치거나 순서를 바꾸는 등의 작업을 할 때는 `--force-with-lease`로도 충분
* 꼭 필요할 때만 `--force` 사용
* `git pull --rebase origin master`
* master에서 branch A, B를 각각 만들고 예를 들어 A branch가 먼저 merge해서 B에서 A branch의 master 변경 사항을 합쳐야 할 경우
* rebase하고 난 후 remote/B와는 git history가 달라서 git push -f로 remote에 넣어줘야 했음
* [Rewriting history git commit --amend git rebase git rebase -i git reflog](https://www.atlassian.com/git/tutorials/rewriting-history)
* [git에서 특정 commit에 들어간 수정 파일을 다른 commit으로 옮기는 방법](http://blog.doortts.com/285)
* [Git rebase를 이용한 커밋 수정 (Interactive Rebase)](https://wckhg89.github.io/archivers/rebase)
* [git 히스토리를 마음대로 편집하기 - interactive rebase](https://www.youtube.com/watch?v=ZMoB1SZ4Ceg)
* [**Git Rebase --Interactive 옵션 알아보기 - 재그지그의 개발 블로그**](https://wormwlrm.github.io/2020/09/03/Git-rebase-with-interactive-option.html)
* [Don’t Fear The Rebase](https://hackernoon.com/dont-fear-the-rebase-bca683888dae)
* [An introduction to Git merge and rebase: what they are, and how to use them](https://medium.freecodecamp.org/an-introduction-to-git-merge-and-rebase-what-they-are-and-how-to-use-them-131b863785f)
* [깃(Git) 리베이스 사용하기](https://tech.10000lab.xyz/git/git-rebase-workflow.html)
* [How to become a Git expert](https://medium.freecodecamp.org/how-to-become-a-git-expert-e7c38bf54826)
* [Squash commits into one with Git](https://www.internalpointers.com/post/squash-commits-into-one-git) multiple commits를 하나의 new commit으로 변경
* [Squash commits when merging a Git branch with Bitbucket](https://bitbucket.org/blog/git-squash-commits-merging-bitbucket)
* [git squash - 여러개의 커밋로그를 하나로 묶기](https://meetup.toast.com/posts/39)
* [git rebase로 commit 합치기 – Jihun's Development Blog](https://cjh5414.github.io/git-rebase/) squash fixup
* [Git의 다양한 브랜치 병합 방법 (Merge, Squash & Merge, Rebase & Merge)](https://hudi.blog/git-merge-squash-rebase/)
* [git rebase in depth](https://git-rebase.io/)
* [Why you should stop using Git rebase](https://medium.com/@fredrikmorken/why-you-should-stop-using-git-rebase-5552bee4fed1)
* [git rebase를 이해하기](https://junwoo45.github.io/2019-10-23-rebase)
* [Git 과거의 특정 커밋 수정하기](https://github.com/HomoEfficio/dev-tips/blob/master/Git%20%EA%B3%BC%EA%B1%B0%EC%9D%98%20%ED%8A%B9%EC%A0%95%20%EC%BB%A4%EB%B0%8B%20%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0.md)
* [12.2: Rebase 시 "ours" 와 "theirs", 로컬과 원격 개념 이해하기 :: 노초코의 주경야독](https://nochoco-lee.tistory.com/117)
* [🎢 Git Rebase 활용하기](https://velog.io/@godori/Git-Rebase)
* [Git에서 원하는 커밋만 제거하기 (feat. SourceTree)](https://jojoldu.tistory.com/613)
* [merge와 rebase : 네이버 블로그](https://blog.naver.com/pjt3591oo/222567853728)
* [10분 테코톡 글로의 git - merge and rebase - YouTube](https://www.youtube.com/watch?v=6nc_0-HWZXU)
* [Fatal: Not possible to fast-forward, aborting / fatal: 정방향이 불가능하므로, 중지합니다. | 웹으로 말하기](https://mytory.net/2022/01/13/git-fatal-not-possible-to-fast-forward-aborting.html)
* `reflog`
* [Rewriting history git commit --amend git rebase git rebase -i git reflog](https://www.atlassian.com/git/tutorials/rewriting-history)
* [How to undo your git failure Using `git reflog` and `git reset` to save your code](https://blog.usejournal.com/how-to-undo-your-git-failure-b76e31ecac74)
* [git - reflog - YouTube](https://www.youtube.com/watch?v=1OihCn5BoT4)
* [내 마음대로 커밋을 다뤄보자 - reset, revert, reflog](https://blog.naver.com/pjt3591oo/222553996993)
* [Git reflog: Restore Version Control History - DEV Community 👩💻👨💻](https://dev.to/lobunto/git-reflog-restore-version-control-history-ke1)
* remote
* 이미 존재하는 project를 fork한 후 pull request를 위해 원래 repository와 연결