1 00:00:00,359 --> 00:00:02,624 Git is an excellent, and industry-recognized 2 00:00:02,624 --> 00:00:04,229 version-control system. 3 00:00:04,229 --> 00:00:07,536 GitHub.com, the website, makes that accessible to everyone. 4 00:00:07,636 --> 00:00:10,178 ♪ (whimsical theme music throughout) ♪ 5 00:00:13,163 --> 00:00:16,281 It's easy to think that you could host your Git repositories anywhere. 6 00:00:16,536 --> 00:00:17,644 There's plenty of services, 7 00:00:17,644 --> 00:00:19,636 and plenty of tools for you to host them, 8 00:00:19,636 --> 00:00:21,696 even within your own corporate firewall. 9 00:00:21,696 --> 00:00:24,853 But there's more than just hosting your code. 10 00:00:25,345 --> 00:00:27,297 We're talking about changing software, 11 00:00:27,297 --> 00:00:30,955 and that includes all types, and all facets of collaboration: 12 00:00:31,397 --> 00:00:35,467 filing issues, organizing repositories so they're easy to find, 13 00:00:35,787 --> 00:00:38,557 being able to mention the contributors by user name, 14 00:00:38,860 --> 00:00:42,488 and the ability to have control over the inbound changes 15 00:00:42,488 --> 00:00:44,866 through the concept that we call pull requests. 16 00:00:45,259 --> 00:00:48,167 All of these are facilitated by GitHub.com, 17 00:00:48,167 --> 00:00:52,050 a collaboration platform that also hosts Git repositories. 18 00:00:54,752 --> 00:00:56,333 Your first interaction with GitHub 19 00:00:56,333 --> 00:00:58,477 is likely through the Explore page, 20 00:00:58,477 --> 00:01:00,693 finding a bit of open source that solves a need 21 00:01:00,693 --> 00:01:02,247 in your current application. 22 00:01:02,407 --> 00:01:05,598 But soon you'll find you want to file an issue, 23 00:01:05,598 --> 00:01:07,867 or perhaps even submit a change to a project 24 00:01:07,867 --> 00:01:10,427 that improves it, or corrects a defect. 25 00:01:10,830 --> 00:01:13,267 Those are all things that are made possible 26 00:01:13,267 --> 00:01:15,154 by the GitHub platform. 27 00:01:15,556 --> 00:01:17,372 You'll find that we have solutions, 28 00:01:17,372 --> 00:01:19,697 such as an integrated defect tracker, 29 00:01:19,697 --> 00:01:21,745 and the process of pull requests, 30 00:01:21,745 --> 00:01:24,064 to which code change can get reviewed, 31 00:01:24,359 --> 00:01:27,705 commented on, refined, and then finally accepted, 32 00:01:28,336 --> 00:01:30,553 even for people that are not core contributors 33 00:01:30,553 --> 00:01:32,218 to the project itself. 34 00:01:32,218 --> 00:01:35,890 GitHub adds further innovations that allow Git to go places 35 00:01:35,890 --> 00:01:38,138 that it wouldn't ordinarily have been welcome. 36 00:01:38,138 --> 00:01:42,088 For example, we have an SvnBridge that allows any Git repository 37 00:01:42,088 --> 00:01:44,779 to be treated as a subversion repository. 38 00:01:44,779 --> 00:01:46,904 This often facilitates a slow migration 39 00:01:46,904 --> 00:01:49,595 of continuous integration infrastructure, 40 00:01:49,595 --> 00:01:51,496 build scripts, or other automation 41 00:01:51,496 --> 00:01:53,534 that you've built into your release process. 42 00:01:56,294 --> 00:01:59,179 GitHub also has the concept of the web flow. 43 00:01:59,458 --> 00:02:02,617 This brings most of the Git operations to the web browser. 44 00:02:02,967 --> 00:02:05,109 No cloning the repository to disk, 45 00:02:05,333 --> 00:02:08,112 no loading of Git software on your local machine, 46 00:02:08,112 --> 00:02:09,967 especially if it's a shared terminal, 47 00:02:10,114 --> 00:02:12,894 just an editor, with syntax highlighting, 48 00:02:12,894 --> 00:02:14,261 directly in the browser, 49 00:02:14,261 --> 00:02:16,610 for any of the files in a repository. 50 00:02:16,610 --> 00:02:21,353 Rename them, move them, delete them, add brand new files, 51 00:02:21,353 --> 00:02:23,787 change all kinds of things about the project, 52 00:02:23,787 --> 00:02:25,595 directly from the browser. 53 00:02:26,013 --> 00:02:29,017 This means that Git is far more accessible 54 00:02:29,017 --> 00:02:32,137 to the members of your organization, open source project, 55 00:02:32,137 --> 00:02:36,309 or company, than would be if they required the desktop tools 56 00:02:36,309 --> 00:02:38,237 to interact with this repository. 57 00:02:40,838 --> 00:02:42,455 As documentation is recognized 58 00:02:42,455 --> 00:02:45,535 to be a critical part of every software project, 59 00:02:45,535 --> 00:02:49,096 having support for prose, both in the repositories 60 00:02:49,096 --> 00:02:52,348 and in the surrounding commentary, is extremely important. 61 00:02:53,019 --> 00:02:55,565 GitHub supports GitHub-flavored markdown, 62 00:02:55,565 --> 00:02:58,569 which is an improvement on the core markdown language 63 00:02:58,569 --> 00:03:01,963 in issues, pull requests, and even in documents 64 00:03:01,963 --> 00:03:05,615 that are contributed to the core of the repository itself. 65 00:03:05,909 --> 00:03:09,336 Simply give them a .md extension, put them in the repository 66 00:03:09,336 --> 00:03:10,964 as you would any other file, 67 00:03:10,964 --> 00:03:13,022 and you'll see them rendered, with changes, 68 00:03:13,022 --> 00:03:15,594 as you would expect from a document editor. 69 00:03:15,764 --> 00:03:18,006 Lines are struck out that are removed, 70 00:03:18,006 --> 00:03:21,193 lines appropriately show where they've been relocated to, 71 00:03:21,193 --> 00:03:24,525 and lines that are put in as additions are shown in green. 72 00:03:29,250 --> 00:03:32,133 It doesn't end with just code and documents, though. 73 00:03:32,465 --> 00:03:34,562 We're adding support for things like 74 00:03:34,562 --> 00:03:36,891 3D models, an STL file format, 75 00:03:36,891 --> 00:03:38,889 and GeoJSON, for maps. 76 00:03:39,029 --> 00:03:42,817 Those render in the browser, meaning that tools you'd ordinarily 77 00:03:42,817 --> 00:03:46,079 have to purchase and download to your local machine, 78 00:03:46,079 --> 00:03:49,268 complexly set up, configure and install, 79 00:03:49,268 --> 00:03:52,027 now just render directly in the browser, 80 00:03:52,027 --> 00:03:54,225 making those files all the more accessible 81 00:03:54,225 --> 00:03:56,646 for anyone visiting that repository. 82 00:03:56,835 --> 00:03:58,578 GitHub is the unifying platform 83 00:03:58,578 --> 00:04:00,773 that brings together a web flow 84 00:04:00,773 --> 00:04:03,230 that would ordinarily require desktop tools, 85 00:04:03,230 --> 00:04:04,736 both for working with Git, 86 00:04:04,736 --> 00:04:09,750 as well as rendering these complex markdown, STL, and GeoJSON files 87 00:04:09,750 --> 00:04:12,521 into an online experience that's easy to use, 88 00:04:12,521 --> 00:04:14,975 just moments after signing up for an account. 89 00:04:15,195 --> 00:04:18,317 It means that collaboration happens more frequently, 90 00:04:18,537 --> 00:04:19,823 with less friction, 91 00:04:19,980 --> 00:04:21,720 and more contributions get made 92 00:04:21,720 --> 00:04:24,354 to both open- and closed-source projects 93 00:04:24,354 --> 00:04:25,870 because of this product. 94 00:04:27,226 --> 00:04:29,781 Thanks for watching this episode of Git and GitHub Foundations 95 00:04:29,781 --> 00:04:32,024 on the GitHub.com platform. 96 00:04:32,328 --> 00:04:34,691 Be sure to subscribe to our episodes over here. 97 00:04:34,691 --> 00:04:37,869 If you have a followup question, ask that down below. 98 00:04:37,869 --> 00:04:39,441 We also appreciate comments. 99 00:04:39,441 --> 00:04:41,433 And if you'd like some related videos, 100 00:04:41,433 --> 00:04:42,943 those are all right down here, 101 00:04:42,943 --> 00:04:45,269 including the use of pull requests.