-
Notifications
You must be signed in to change notification settings - Fork 0
/
GitHubGettingStarted.html
739 lines (738 loc) · 30.9 KB
/
GitHubGettingStarted.html
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GitHub Getting Started</title>
</head>
<body>
<h1>An Overview of Git and GitHub</h1>
<div>
<h3>What is Git?</h3>
<ol>
<li>Popular source control system</li>
<li>Distributed system</li>
<li>Free and open-source</li>
</ol>
<h3>Why use Git?</h3>
<ol>
<li>Fast</li>
<li>Disconnected</li>
<li>Powerful yet easy</li>
<li>Branching</li>
<li>Pull requests</li>
</ol>
<h3>Why Not Git?</h3>
<ol>
<li>Different</li>
<li>Learning curve</li>
<li>Tools</li>
<li>Binary files</li>
</ol>
<h3>What is GitHub?</h3>
<ol>
<li>Hosting service based on Git</li>
<li>More than just source control for you code</li>
<li>Free and paid options</li>
</ol>
<h3>Getting your machine ready?</h3>
<h4>What you need</h4>
<ol>
<li>Download Git from https://git-scm.com/downloads</li>
<li>An editor Visual Studio Code</li>
<li>GitHub account</li>
</ol>
<h3>Setting up git on your windows machine</h3>
<ol>
<li>download and install git on your machine</li>
<li>git config --global user.name "mreddy"</li>
<li>git config --global user.email "[email protected]</li>
<li>git config --edit --global</li>
<li>git config --global "core.editor "code --wait --new-window" : code is the bash command to open VSCode --wait is for the cursor to wait till the VSCode window is closed</li>
</ol>
<h3>Foundations of Git</h3>
<div>
<h4>The 3 states of Git</h4>
<ol>
<li>Commited</li>
<li>Modified</li>
<li>Staged</li>
</ol>
<h4>The 3 Areas of Git</h4>
<ol>
<li>Working directory</li>
<li>Staging area</li>
<li>.git repo</li>
<li>Remote repo GitHub</li>
</ol>
<h4>Working with Git</h4>
<ol>
<li>CLI</li>
<li>GitHub Desktop</li>
<li>SourceTree</li>
<li>Tower</li>
</ol>
<h4>Most common git commands</h4>
<ol>
<li>git: all commands starts with git, giving git at command line will show help</li>
<li>git config: Configure the tooling</li>
<li>git init: Initialize a git local repo .git directory will be created</li>
<li>git clone: Download a project from remote</li>
<li>git add: Prepare a file to staging</li>
<li>git commit: Commit a file to the repo</li>
</ol>
<h4>Demo</h4>
<ol>
<li>mkdir pluralsight</li>
<li>cd pluralsight</li>
<li>git init</li>
<li>ls -la</li>
<li>git status</li>
<li>code .: opens VScode</li>
<li>create new file readme.md file</li>
<li>write Hello world in readme.md file and save</li>
<li>git status: Untracked files readme.md</li>
<li>git add readme.md: will start tracking new file</li>
<li>git status</li>
<li>git commit -m "new commit"</li>
<li>git status</li>
<li>add new 3files</li>
<li>git status: 3 new files </li>
<li>git commit -am "3 new files"</li>
<li>git log</li>
</ol>
</div>
</div>
<h1>Getting Started with GitHub</h1>
<h3>Understanding GitHub</h3>
<div>
<h4>What is GitHub?</h4>
<ol>
<li>Hosting service for Git</li>
<li>Git and a lot of extras</li>
<li>Social aspect of coding</li>
<li>Part of Microsoft since 2018</li>
<li>2020 40M users</li>
</ol>
<h4>GitHub's Main Features</h4>
<ol>
<li>Code</li>
<li>Pull requests</li>
<li>Issues</li>
<li>CI/CD</li>
</ol>
<h4>A tour to GitHub</h4>
<ol>
<li>Creating your own GitHub account</li>
<li>Configuring your profile</li>
<li>Following other users on GitHub</li>
</ol>
<h4>Using SSH</h4>
<ol>
<li>HTTPS: Requires username and password</li>
<li>SSH: Easier to work with</li>
<li>Generating SSH Keys</li>
<li>Connecting to GitHub using SSH</li>
<li>at root dir ls -al ~/.ssh to get the list of SSH keys</li>
<li>Create SSH Key: ssh-keygen -t rsa -b 4096 -c "[email protected]"</li>
<li>verify SSH agent running: eval $(ssh-agent -s)</li>
<li>add SSH key: ssh-add ~/.ssh/id_rsa</li>
<li>ssh -t [email protected]</li>
</ol>
<h4>Search on GitHub</h4>
<ol>
<li>Global Search</li>
<li>Scope of your search-Repositories, code, issues</li>
<li>Advanced Search page</li>
<li>Search syntax allows further optmization</li>
<li>dotnet stars:>1000 - word "dotnet" and more than 1000 stars</li>
<li>dotnet stars:10..50 - word "dotnet" and between 10 to 50 stars</li>
<li>dotnet NOT "hello world" - word "dotnet" and not contain "hello world"</li>
</ol>
<h4>search demo</h4>
<ol>
<li>aspdotnetcore searches in entire github</li>
<li>we can search in repositories, issues</li>
<li>mreddy searches in all categories</li>
<li>Advance search page</li>
</ol>
</div>
<h1>Working with Repositories</h1>
<h4>Understanding Repositories</h4>
<div>
<ol>
<li>Repositories are the building block of GitHub - think like a folder for you project</li>
<li>Repositories can be public or private. Even though public not everyone can modify the code only contributors can do the changes</li>
<li>GitHub is the Remote</li>
</ol>
<h4>Locally we have following directories</h4>
<ol>
<li>Working directory</li>
<li>Staging area</li>
<li>.git repo</li>
</ol>
<h4>Demo</h4>
<ol>
<li>On GitHub Click on Repositories, Click New to create new repository</li>
<li>Give a repository name</li>
<li>Give Description</li>
<li>Public or private</li>
<li>Add readme file</li>
<li>Add gitignore</li>
<li>Choose template</li>
<li>Choose a license: always choose</li>
<li>Select license type GNU general license type</li>
<li>We can write about the repository</li>
<li>Code tab have one branch</li>
<li>we can add files or create files</li>
<li>we can download the code</li>
<li>last commit</li>
</ol>
<h4>Connecting with GitHub locally</h4>
<div>
<ol>
<li>Clone existing repository</li>
<li>Create or update files</li>
<li>git add</li>
<li>git commit</li>
<li>git Fetch</li>
<li>git merge</li>
<li>git pull: performs fetch and merge</li>
<li>git push</li>
</ol>
</div>
<h4>Demo</h4>
<ol>
<li>Create new repository "GitHubLab"</li>
<li>Private, gitignore visualstudio, License</li>
<li>Clone the GitHubLab repository</li>
<li>ls -la</li>
<li>git status</li>
<li>Copy assets, images,favicon.ico index.html files from excerise files to GitHubLab directory</li>
<li>git status: now we see 4 untracked files</li>
<li>git add .</li>
<li>git commit -m "website files added</li>
<li>git push origin main</li>
<li>in github portal change the index.html and add new file instructions.txt</li>
<li>git fetch</li>
<li>git status: Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.</li>
<li>git pull</li>
<li>git status: Your branch is up to date with 'origin/main'.</li>
<li>in local change index.html by adding awsome save</li>
<li>git add .</li>
<li>git commit -m "updated index.html"</li>
<li>update instruction.txt on github portal</li>
<li>git push: will throw this error ! [rejected] main -> main (fetch first)
error: failed to push some refs to 'github.com-Mallikarjun:tmreddy/GitHubLab.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.</li>
<li>git pull</li>
<li>git status</li>
<li>git push orgin main</li>
</ol>
<h4>Adding special files</h4>
<div>
<ol>
<li>README is a special file known by GitHub: ROOT, .github or docs folder</li>
<li>Rendered automatically on repository landing page</li>
<li>Typically written in markdown(.md)</li>
<li>license.md</li>
<li>contributing and contributors</li>
<li>changelog</li>
<li>support</li>
<li>code_of_conduct</li>
<li>Codeowners</li>
</ol>
</div>
<h4>Sample markdown syntax</h4>
<ol>
<li># this is an H1</li>
<li>## this is an H2</li>
<li>* Red</li>
<li>* Green</li>
<li>* Blue</li>
<li><a href="https://daringfireball.net/projects/markdown/syntax" target="_blank" rel="noopener noreferrer"></a></li>
</ol>
<h4>Administring your repository - Repository Features</h4>
<ol>
<li>Topics</li>
<li>Projects</li>
<li>Issues</li>
<li>Pull Requests</li>
<li>Insights</li>
<li>Settings</li>
</ol>
<h4>Demo for Repositiry features</h4>
<ol>
<li>Adding Topics: click on the setting next to about add topics html css jquery, once done we can see these topics just below the about</li>
<img src="/GitTopics.png" alt="Git Topics">
<li>we can click on the topics, github will search for that topic repositories</li>
<li>Issues, we can create issues to track everything about the repository like to-do, bugs etc.</li>
<li>Click on issues tab create new issue </li>
<li>Click project to create or link existing projects</li>
</ol>
<h4>Bringing in More Users</h4>
<ol>
<li>Collaborators: Core team of the project</li>
<li>Contributors: Lower permission</li>
</ol>
<h4>Demo to add collaborators</h4>
<ol>
<li>Click settings</li>
<li>manage access</li>
<li>send invite</li>
</ol>
<h4>Repository Insights</h4>
<ol>
<li>Contributors</li>
<li>Commits</li>
<li>Traffic</li>
<li>Code Frequncy</li>
<li></li>
</ol>
</div>
<h1>Collaborating Using and Creating Releases</h1>
<div>
<h4>Working with branches</h4>
<div>
<ol>
<li>Branching traditionally means diverging from the main development line.</li>
<li>Expensive operation in other source control</li>
</ol>
<h5>Branching in Git</h5>
<ol>
<li>Much more lightweight</li>
<li>Branching is very fast</li>
<li>Encouraged to be used</li>
<li>Works because of the way Git works [Snapshots]</li>
<li>Branch is a pointer to a commit</li>
<li>Default branch is main</li>
<li>points to latest commit</li>
<li>Moves forward with every commit</li>
<li>Use branches for features, bug fixes and experiments</li>
</ol>
</div>
<h4>Demo creating branchs on GitHub</h4>
<div>
<ol>
<li>Main branch is the Default branch</li>
<li>Create SampleBranch: automatically switched to SampleBranch</li>
<li>Change instruction.txt file in the samplebranch</li>
<li>Commit the changes</li>
<li>Compare and pull requests</li>
<li>This branch is 1 commit ahead of main branch</li>
</ol>
</div>
<h4>Demo creating branches with Git</h4>
<div>
<ol>
<li>git status</li>
<li>git checkout -b add-more-instructions</li>
<li>code .</li>
<li>update instructions.txt file, save</li>
<li>git status</li>
<li>git commit -am "updated instructions"</li>
<li>git push -u origin add-more-instructions</li>
<li>go to github and see new branch created</li>
</ol>
</div>
<h4>Understanding Branching Strategies</h4>
<div>
<ol>
<li>Set of rules, when you should create branch </li>
<li>Define workflow for branches</li>
<li>Different options exist</li>
<li>Centralized workflow: one single branch</li>
<li>Gitflow workflow: two main long living branches main and development</li>
<li>Forking workflow</li>
<li>GitHub Wrokflow</li>
</ol>
</div>
<h4>Understaing the GitHub workflow</h4>
<div>
<ol>
<li>Lightweight</li>
<li>Favored by GitHub</li>
<li>Branches for bugs, features</li>
<li>Evolves around pull requests</li>
</ol>
</div>
<h4>Pull Requests</h4>
<div>
<ol>
<li>Announces a push to a branch</li>
<li>Discuss-review changes add more commits</li>
<li>Merge</li>
</ol>
</div>
<h4>Demo for pull request</h4>
<div>
<ol>
<li>Go to GitHub now we see three branches</li>
<li>Apart from main branch we can see New pull request options</li>
<li>Goto pullrequests tab, select new pullreqeust</li>
<li>Select branche to merge</li>
<li>Create pull request, pull request is created with the same commit message</li>
<li>we can see how many contributed, how many commits, how manu files changes, what are the changes, review the changes</li>
<li>we can see the differences in split form, click + to add comments for review</li>
<li>once pull request is created it is show if there are any conflits, if no conflits github will show merge</li>
<li>once successful merge GitHub will show delete branch option</li>
<li>git branch -r</li>
<li>git fetch</li>
<li>git checkout add-installation-file</li>
</ol>
</div>
<h4>Merge conflicts</h4>
<div>
<ol>
<li>Editing on the same line</li>
<li>Editing an already deleted file</li>
<li>Merge conflicts need to be solved before a merge can happen</li>
<li>Merging can be done on GitHub</li>
<li>below are local diff tools</li>
<li>Kdiff3</li>
<li>vimdiff3</li>
<li>P4Merge</li>
<li>Beyond Compare</li>
</ol>
</div>
<h4>Pull Request template</h4>
<div>
<ol>
<li>Create new file in root directory pull_request_template.md</li>
<li>This will be the templete for new pull requests</li>
</ol>
</div>
<h4>Revert pull request</h4>
<div>
<ol>
<li>Reversting a pull request intrun creates a new pull request</li>
<li>Click on the closed pull request</li>
<li>Click revert, which will create a pull request</li>
<li>Resolve any conflicts and merge</li>
</ol>
</div>
<h4>Forking</h4>
<div>
<ol>
<li>Copy of a repo</li>
<li>Does't impact the orginal repo</li>
<li>Changes can be merged again via pull requests</li>
<li>Availiable to do for anyone</li>
<li>It's your repository now</li>
</ol>
</div>
<h4>Demo of Forkign</h4>
<div>
<ol>
<li>On the repository page we can find fork icon on right top side</li>
<li>Click on fork icon, a dialog will come where should we fork GitHubLab</li>
<li></li>
<li></li>
<li></li>
</ol>
</div>
</div>
<h1>Tracking Issues and Creating Releases</h1>
<div>
<h4>Working with issues</h4>
<div>
<ol>
<li>Bugs</li>
<li>Enhancements</li>
<li>Tasks</li>
<li>Ideas</li>
<li>Association with pull request</li>
<li>Notifications</li>
<li>Combined towards a milestore</li>
<li>GitHub issues tracker</li>
</ol>
</div>
<h4>Lables</h4>
<div>
<ol>
<li>Lables can be associated with pullrequest and with issues </li>
<li>There are 9 default lables</li>
<li>bug</li>
<li>duplicate</li>
<li>enhancement</li>
<li>help wanted</li>
<li>question</li>
<li>wontfix</li>
<li>good first issue</li>
<li>invalid</li>
<li>documentation</li>
</ol>
</div>
<h4>Demo Issues</h4>
<div>
<ol>
<li>Open issues in a repo, if not found go to setting and enable issue</li>
<li>Click new issue button</li>
<li>Assign to someone/myself</li>
<li>Apply a label</li>
<li>Assign to milestone</li>
<li>id is given to pull request and for the issues</li>
<li>#id can be used to link to milestones or for pullrequests<li>
<li>Closes #7 in the pull requests, when the pullrequest is merged it closes the issue #7 also</li>
</ol>
</div>
<h4>Demo to create template for Issues</h4>
<div>
<ol>
<li>we can create mannually like how we did for pullrequest template</li>
<li>or we can go to setting and click Set up templates</li>
<li>Select bug or feature or custom</li>
<li>it will prompt for the commit changes</li>
<li>it will create new folder and add template files to that folder</li>
<li>next time when we create a new issue GitHub will ask to select the template</li>
</ol>
</div>
<h4>Creating a milestone</h4>
<div>
<ol>
<li>Track progress to certain point</li>
<li>Group issues</li>
<li>Priotizitions</li>
<li>go to issues page click on milestones icon</li>
<li>create milestone, give name, update due data, add discriptions</li>
<li>select the issues and attach the newly created milestone</li>
<li>as the issues are getting closed progress of the milestore will also changes show percentage of completion</li>
</ol>
</div>
<h4>Adding Tags</h4>
<div>
<ol>
<li>A branch points to a snapshot in the history of your project</li>
<li>A tag point to an important point in history -V1.0</li>
<li>Two types of tags</li>
<li>Lightweight</li>
<li>Annotated [Message, checksum]</li>
<li>Tags can be added later on an existing commit</li>
<li>Command to add tag: $ git tag adding -a makes it as annotated tag</li>
<li>Downlad the code (zip) with the tag</li>
<li>commits to current</li>
</ol>
</div>
<h4>Demo of Taging </h4>
<div>
<ol>
<li>git log : to check the history of the commits: q to exit git log</li>
<li>git tag: to get the list of the tags</li>
<li>git tag stable main :stable is the name of the tag and will point to main branch</li>
<li>git tag</li>
<li>git log --oneline --graph</li>
<li>git tag -a v0.1 -m "0.1 release" [commitid]</li>
<li>git tag</li>
<li>git push</li>
<li>git push --tags: this will push the tag to the remote</li>
</ol>
</div>
<h4>Creating a Release</h4>
<div>
<ol>
<li>Releases are based on tags</li>
<li>With releases we can create release notes</li>
<li>with releases we can bind binary files</li>
</ol>
</div>
<h4>Demo for releases</h4>
<div>
<ol>
<li>Creating releases on GitHub</li>
<li>Click on tags, tags pages is opned, next to left we can find releases</li>
<li>Create new release, add release notes, attach tag we can add our own zip</li>
<li>From tags tab also we can create release by selecting tag... and create release</li>
<li></li>
</ol>
</div>
</div>
<h1>Automating Tasks with GitHub Actions</h1>
<div>
<h4>Understanding GitHub Actions</h4>
<div>
<ol>
<li>We can use GitHub for many parts of the SDLC</li>
<li>Tasks can be automated</li>
<li>Automate different tasks</li>
<li>Event-driven, will trigger tasks</li>
<li>Live in the repository</li>
<li>Stored on workflows folder</li>
<li>Actions are based on YAML syntax</li>
<li>Part of GitHub</li>
<li>Templates</li>
<li>Available in free plan</li>
</ol>
</div>
<h4>Components of GitHub Actions</h4>
<div>
<ol>
<li>Workflow</li>
<li>Workflow contains jobs</li>
<li>Event triggers a workflow</li>
<li>Workflow contains one or more jobs</li>
<li>Each job as steps and actions</li>
<li>Executions of these Jobs are done on Runners</li>
<li>Runners: servers that runs the automation code</li>
<li>it will typically server hosted by GitHub or it can be your own</li>
<li>Steps can be action or command line commands</li>
<li>actions are the fineist building block of GitHub Actions they are the standalone commands</li>
<li>we can create our own actions</li>
</ol>
</div>
<h4>Creating an action in YAML</h4>
<div>
<ol>
<li>first line - name: first-github-action //name of the workflow</li>
<li>second line - on: [push] //when to trigger the workflow here in this e.g. on push. on represents event</li>
<li>third line - jobs: //all jobs contained within this workflow</li>
<li>fouth line - check-bats-version: //check-bats-version is the name of the job</li>
<li>fifth line - runs-on: ubuntu-latest //runner hosted by github</li>
<li>sixth line - steps: //grouped by steps </li>
<li>seventh line - -uses: actions/checkout@v2 // actions are the smallest tasks it will checkout on the server</li>
<li>eigth line - - uses:actions/setup-node@v1 //setup node on the runner server</li>
<li>ninth line - -run: npm install -g bats //install bats package on the server, bats package is used for testing the applications</li>
<li>tenth line - -run: bats -v //command to get the bats version</li>
</ol>
</div>
<h4>Demo for GitHub Actions</h4>
<div>
<ol>
<li>Select action tab in the repo</li>
<li>Based of the repo you will get suggestions</li>
<li>Select set up your own workflow yourself</li>
<li>it will create a file in .github/workflow/</li>
<li>rename main.yaml to sample.yaml</li>
<li>add workflow</li>
<li>Commit the changes</li>
<li>Click on the actions we see new wrokflow</li>
<li>at this point it is yellow not executing</li>
<li>after sometime it will turn to green</li>
<li>click on the workflow to see it details</li>
</ol>
</div>
<h4>Automating tasks</h4>
<div>
<ol>
<li>Types of events</li>
<li>Event within GitHub e.g. push, pull</li>
<li>List of events can be combined</li>
<li>Scheduled, time based events UTC min is 5 mins</li>
<li>Webhook events</li>
<li>Actions</li>
<li>Can create own actions</li>
<li>Use community marketplace for actions</li>
<li>Types of workflows</li>
<li>a. Automations</li>
<li>b. CI/CD</li>
<li>Contibuous integration</li>
<li>Continuous deployment</li>
</ol>
</div>
<h4>Adding a label using a flow to an issue</h4>
<div>
<ol>
<li>go to actions</li>
<li>create new actions names label-issues.md</li>
<li>New workflow</li>
<li>label-isues.yaml</li>
</ol>
</div>
<h4>Dot net core CI/CD workflow using GITHUB Actions</h4>
<div>
<ol>
<li>Create new repo DotNetCodeActionsLab</li>
<li>Create new .net core console application</li>
<li>Git add .</li>
<li>Git commit -m "created new console app"</li>
<li>Git push</li>
<li>Got to actions tab on github page </li>
<li>Select .net suggestion of git</li>
<li>Give the file name and commit</li>
<li>Action workflow will kick in</li>
</ol>
</div>
</div>
<h1>Creating a GitHub Wiki</h1>
<div>
<h4>Create a Wiki for the repository</h4>
<ol>
<li>Documentation is vital</li>
<li>Long-living document to how to use the project</li>
<li>Read.me is about the repo</li>
<li>Wiki is about the coding standards, why what is designed in this way etc..</li>
<li>Wiki is done via the markdown syntax</li>
</ol>
<h4>Demo of creating a wiki page</h4>
<ol>
<li>Select the repo and click on the Wikis tab</li>
<li>If Wikis tab is not visible go to settings check Wikis</li>
<li>Click Create the first page</li>
<li>Home page, update content select initial page, save page </li>
<li>Click Add a custom footer, _footer</li>
<li>Update footer content as Last edited by mreddy on July 30 2023</li>
<li>Add new page Getting started</li>
<li>Add content and save</li>
<li>Add _sidebar</li>
<li>- [Home Page](Home)
- Quick starts
- [Getting Started](GettingStarted)
- [Sample](Sample)
</li>
<li>We can add image also to Wiki pages</li>
<li>if you don't like working on the wiki on github site you can work on locally by using Clone this wiki locally this wiki </li>
</ol>
</div>
<h1>Working with Social Features</h1>
<div>
<h4>Demo for Creating a Gist</h4>
<ol>
<li>Gist is a simple way to share snippents and notes with others</li>
<li>used to share a file/files code snippets</li>
<li>Gists are based on repository</li>
<li>Gists can be public or secret</li>
<li>Gists can be downloabale</li>
<li>Lets create a gist, go to gist.github.com</li>
<li>if logged on github the moment open gits.github.com you can start instently share code, notes and snippnets.</li>
<li>Add desc</li>
<li>Select file and extension</li>
<li>Add code</li>
<li>Create gist either secret or public </li>
<li>on modifying gitst it will show history also</li>
<li>we can embade this gistlink in code and also can download</li>
<li>we can clone the gist also to local and work on </li>
</ol>
<div>
<h4>Project Board</h4>
<ol>
<li>organization of work</li>
<li>Work on specific feature</li>
<li>Checklist</li>
<li>Roadmaop</li>
</ol>
</div>
<div>
<h4>Demo on project board</h4>
<ol>
<li>Creating a project board</li>
<li>Adding and managing issues</li>
<li>Click on the project menu they too are linked to repo</li>
<li>Clicking on project will show projects options select on project will be created </li>
</ol>
</div>
<div>
<h4>GitHub Pages</h4>
<ol>
<li>Static hosting No server-side code</li>
<li>pages are hosted from a repo</li>
<li>pages can be crated online or offline either on github or locally</li>
<li>Go to settings and then go to pages</li>
<li>Select which branches we want to select the pages</li>
<li>and the site is hosted amd available to browse </li>
</ol>
</div>
</div>
</body>
</html>