{"id":50391,"date":"2010-07-06T17:34:12","date_gmt":"2010-07-06T14:34:12","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=50391"},"modified":"2020-04-13T11:07:34","modified_gmt":"2020-04-13T08:07:34","slug":"revision-control-systems-quick-git-notes","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/","title":{"rendered":"Revision Control Systems: Quick Git Notes"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#A_short_introduction_to_Git\" >A short introduction to Git<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#What_is_Git\" >What is Git?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#About_the_author\" >About the author<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"A_short_introduction_to_Git\"><\/span>A short introduction to Git<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-50392\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/02\/git-logo-150x150.png\" alt=\"\" width=\"150\" height=\"150\" style=\"margin: 10px 0px 0px 0px;\" \/> It sometimes occurs that employees of a company don&#8217;t use any version control system, because they think working with a version controller takes more time than working without it. The reality is that without such a system development-critical workflows lack proper organization. There is no documentation, iterations, builds, detailed tasks, or change requests. You just receive most information from Skype chats.<\/p>\n<p>Once in our practice, the customer didn\u2019t use any version control system for the project. As a result, the developers happened to introduce changes to exactly the same component that was already modified by their colleagues. Furthermore, some of the changes introduced resulted in broken functionality. Thus, you need more time to solve the problem. It is a bad situation, and a company probably would never be successful with a development process like that.<\/p>\n<p>What did they have to do to improve the situation? There were many possible options, and it was difficult to imagine something worse. However, the first and foremost solution was to implement a version control system, such as SVN, CSV, Git, Bazaar, Mercurial, etc. The second one is to keep all tasks\/bugs\/requests\/comments in a single location.<\/p>\n<p>We really succeeded in working with Git as a version control system for projects. When using it, everyone can see what changes were made in the project&#8217;s source code and who made those changes. You have a full copy of your project across all your computers. If somebody breaks your project, you will see where the problem is located. You could also revert the latest version, if the problem is too difficult to be resolved. Git saves us a lot of time and customer&#8217;s money.<\/p>\n<p>The answer to what kind of a version controller we could have used for the customer was obvious, since Git proved to be a highly effective tool for efficient source management.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_is_Git\"><\/span>What is Git?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/git-scm.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">Git<\/a> is a free and open-source distributed version control system designed to handle everything from small to very large projects at a high rate of speed and efficiency. Each Git clone is a full-fledged repository with complete history and full revision tracking capabilities, independent of network access or a central server. Branching and merging are fast and easy to do. This project was developed by Linus Torvalds for Linux kernel development.<\/p>\n<p>As was mentioned above, this tool is a distributed version control system, which means that if your server crashes, repercussion will not be so fatal, because a copy of the repository and all history are stored on local machines.<\/p>\n<p>Git is a multiple-platform tool. You can use a console version, and there are several graphical interfaces that allow you to work with the Git repository:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\"><a href=\"http:\/\/gitk.sourceforge.net\" rel=\"noopener noreferrer\" target=\"_blank\">GITK<\/a>\u2014a simple, fast tool<\/li>\n<li style=\"margin-bottom: 6px;\"><a href=\"http:\/\/trac.novowork.com\/gitg\/\" rel=\"noopener noreferrer\" target=\"_blank\">Gitg<\/a>\u2014an interface for Gtk+\/GNOME<\/li>\n<li style=\"margin-bottom: 6px;\"><a href=\"https:\/\/wiki.gnome.org\/giggle\" rel=\"noopener noreferrer\" target=\"_blank\">Giggle<\/a>\u2014another interface for Gtk+<\/li>\n<li style=\"margin-bottom: 6px;\"><a href=\"http:\/\/gitx.frim.nl\" rel=\"noopener noreferrer\" target=\"_blank\">GitX<\/a>\u2014a tool for MacOS, based on Cocoa<\/li>\n<li style=\"margin-bottom: 6px;\"><a href=\"https:\/\/sourceforge.net\/projects\/gitextensions\/\" rel=\"noopener noreferrer\" target=\"_blank\">Git Extensions<\/a>\u2014a tool developed using .NET<\/li>\n<li><a href=\"https:\/\/tortoisegit.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">TurtoriseGit<\/a>\u2014another tool for Windows<\/li>\n<\/ul>\n<p>In this blog post, we are not comparing Git with other versions controllers. However, if you use another tool in your project and think of changing it to something else, it may help you to make a decision. The whole chapter in the <a href=\"https:\/\/progit.org\/book\/ch8-2.html\" rel=\"noopener noreferrer\" target=\"_blank\">Git book<\/a> describes how to migrate to Git.<\/p>\n<p>We think the best way to present Git\u2019s functionality is to do some simple tasks. Please note that Git should be already installed. Here we use computer that runs Ubuntu, so, if you prefer another OS, you may observe some differences in behavior.<\/p>\n<p>We&#8217;ll start with the task to create a public repository at <a href=\"https:\/\/github.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">GitHub<\/a>. For example, FirstRepo, which allows several persons to work on a project, while keeping all history.<\/p>\n<p>Let&#8217;s do it. Open github.com (we suppose you already have a registered account) and create a public repository. Then, you should configure a global user name and e-mail on your computer. For doing this, open your favorite terminal emulator and run:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\"><code style=\"color: black; background-color: #e6e6e6;\">$ git config --global user.name<\/code>\u2014Your Name<\/li>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git config --global user.email<\/code>\u2014youremail@example.com<\/li>\n<\/ul>\n<p>Generate new key pair for access to your repository:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ ssh-keygen -t rsa -C <\/code>\u2014youremail@example.com<\/li>\n<\/ul>\n<p>Open your Git account page. In the <strong>SSH Public Key<\/strong> section, click <strong>add another public key<\/strong> and paste entry from your <code style=\"color: black; background-color: #e6e6e6;\">~\/.shh\/id_rsa.pub<\/code> to your public key into the <strong>key<\/strong> field. If you leave the title blank, the key comment (your e-mail) will be used for the title.<\/p>\n<p>After that, create a folder where your project will be located:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ mkdir FirstRepo<\/code><\/li>\n<\/ul>\n<p>Go to that folder:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ cd FirstRepo<\/code><\/li>\n<\/ul>\n<p>Create a file:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ touch ReadMe<\/code><\/li>\n<\/ul>\n<p>Edit your file. Open ReadMe in your favorite editor and type something, for example, \u201cHello World\u201d, and save it.<\/p>\n<p>Add the file content to the index:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git add ReadMe<\/code><\/li>\n<\/ul>\n<p>Make a commit to your local repository:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git commit \u2013m \u201cFirst commit\u201d<\/code><\/li>\n<\/ul>\n<p>Add a remote repository:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git remote add origin<\/code> git@github.com:yourlogin\/FirstRepo.git<\/li>\n<\/ul>\n<p>Finally, push your commit into the remote repository:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git push origin master<\/code><\/li>\n<\/ul>\n<p>If you have any problems with synchronization, look at GitHub help.<\/p>\n<p>We have created a public repository and made the first commit. Let&#8217;s check it. Open the browser at <em>github.com\/yourlogin\/FirstRepo<\/em>. You should see the ReadMe file in your repository.<\/p>\n<p>Now you can create new files or edit existing ones. Let&#8217;s create a new branch and work with it.<\/p>\n<p>Return to the console and type the following:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git branch new_branch<\/code><\/li>\n<\/ul>\n<p>Change the branch to new_branch:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git checkout new_branch<\/code><\/li>\n<\/ul>\n<p>Add several new files to your branch. For example, <code style=\"color: black; background-color: #e6e6e6;\">test_file_1<\/code> and <code style=\"color: black; background-color: #e6e6e6;\">test_file_2<\/code>. You can check the status of your branch using the <code style=\"color: black; background-color: #e6e6e6;\">git status<\/code> command. The console output will show you which files you should add to the repository.<\/p>\n<p>Add <code style=\"color: black; background-color: #e6e6e6;\">test_file_1<\/code> and <code style=\"color: black; background-color: #e6e6e6;\">test_file_2<\/code> to the repository:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git add test_file_1 test_file_2<\/code><\/li>\n<\/ul>\n<p>Now you can commit these files into your local repository:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git commit -m \u201cNew files\u201d<\/code><\/li>\n<\/ul>\n<p>Use the <code style=\"color: black; background-color: #e6e6e6;\">git log<\/code> command for reviewing Git\u2019s history in the terminal or another tool (GITK, GitX, Gitg, etc.). In our case, a local branch has a single commit. Let&#8217;s imagine, you need to merge your work from your local branch into a master.<\/p>\n<p>Checkout to the master:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git checkout master<\/code><\/li>\n<\/ul>\n<p>Synchronize your local repository with the remote repository:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git pull origin master<\/code><\/li>\n<\/ul>\n<p>You need to do this for getting a new version of the master, because anybody could make updates. Try to merge our branches:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git merge new_branch<\/code><\/li>\n<\/ul>\n<p>If you have any conflicts, you will be notified to have them resolved. After that, it will be possible to review changes using the <code style=\"color: black; background-color: #e6e6e6;\">git diff<\/code> command, and then you should use <code style=\"color: black; background-color: #e6e6e6;\">git add file_with_conflict<\/code>. After that, type <code style=\"color: black; background-color: #e6e6e6;\">git pull origin master<\/code> once again. If all of the conflicts have been resolved, you should run <code style=\"color: black; background-color: #e6e6e6;\">git push origin master<\/code>.<\/p>\n<p>Sometimes, we need to discard untracked changes made in our files. In this case, we should use <code style=\"color: black; background-color: #e6e6e6;\">git reset<\/code>.<\/p>\n<p>Modify <code style=\"color: black; background-color: #e6e6e6;\">test_file_1<\/code>. The <code style=\"color: black; background-color: #e6e6e6;\">git status<\/code> command shows that this file is modified. For discarding changes, you can use <code style=\"color: black; background-color: #e6e6e6;\">git reset<\/code>:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git reset --hard HEAD<\/code><\/li>\n<\/ul>\n<p>Now, if you run <code style=\"color: black; background-color: #e6e6e6;\">git status<\/code>, nothing will be updated there.<\/p>\n<p>In other scenarios, we need to freeze the state of our code in another symbolic point, for example, for rolling up a QA release for testing. In this case, we can use the <code style=\"color: black; background-color: #e6e6e6;\">git tag<\/code> command:<\/p>\n<ul>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git tag v0.1<\/code> or indicate some commit<\/li>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git tag v0.1 ae0895e6b2b22843c32bcadeb91f3319f2d006f2<\/code><\/li>\n<li><code style=\"color: black; background-color: #e6e6e6;\">$ git push --tags<\/code><\/li>\n<\/ul>\n<p>Finally, we would like to mention one of the disadvantages that brings in some inconvenience. If any machines based on Windows or Linux\/MacOS are being utilized together in your project, you will face a problem working with Line endings. However, it is possible to resolve this. See <a href=\"https:\/\/docs.github.com\/line-endings\" rel=\"noopener noreferrer\" target=\"_blank\">GitHub help<\/a> for more details.<\/p>\n<p>Everything described above is only a basic demonstration of Git\u2019s capabilities. If you are interested, start reading Git manuals and Git book. Other amazing things can be found there. Send us a note if you succeeded in implementing Git for your projects.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_author\"><\/span>About the author<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div>\n<div style=\"float: right;\"><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Vladislav-Rovda.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Vladislav-Rovda.png\" alt=\"\" width=\"120\" class=\"alignnone size-full wp-image-53216\" \/><\/a><\/div>\n<div style=\"width: 600px;\"><small><strong>Andrei Karabitski<\/strong> is a Ruby developer with 10+ years of experience in design and development of web applications, as well as server setup and configuration. He has vast expertise working with Ruby, Ruby on Rails, Resque, and RSpec libraries. Vladislav is highly knowledgeable about front-end technologies, including JavaScript, jQuery, HTML5, and CSS3. In addition, he is proficient in Git, SVN, Mercurial version control systems, and various testing tools.<\/small><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/two-or-three-powerful-iterators\/\">Two Powerful Iterator Methods<\/a><\/li>\n<\/ul>\n<hr\/>\n<p><center><small>The post was written by <strong>Vladislav Rovda<\/strong> and edited by <a href=\"https:\/\/www.altoros.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A short introduction to Git<\/p>\n<p> It sometimes occurs that employees of a company don&#8217;t use any version control system, because they think working with a version controller takes more time than working without it. The reality is that without such a system development-critical workflows lack proper organization. There is no [&#8230;]<\/p>\n","protected":false},"author":5,"featured_media":50411,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[895],"class_list":["post-50391","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-research-and-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Revision Control Systems: Quick Git Notes | Altoros<\/title>\n<meta name=\"description\" content=\"This blog post explores Git functionality and capabilities, as well as shares some commands to create a public repository.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Revision Control Systems: Quick Git Notes | Altoros\" \/>\n<meta property=\"og:description\" content=\"A short introduction to Git It sometimes occurs that employees of a company don&#8217;t use any version control system, because they think working with a version controller takes more time than working without it. The reality is that without such a system development-critical workflows lack proper organization. There is no [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2010-07-06T14:34:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-13T08:07:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Git-Logo.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Alex Khizhniak\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Khizhniak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/\"},\"author\":{\"name\":\"Alex Khizhniak\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/3d914db6ad1b2908c32c0dc5dcabc420\"},\"headline\":\"Revision Control Systems: Quick Git Notes\",\"datePublished\":\"2010-07-06T14:34:12+00:00\",\"dateModified\":\"2020-04-13T08:07:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/\"},\"wordCount\":1317,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/07\\\/Git-Logo.gif\",\"keywords\":[\"Research and Development\"],\"articleSection\":[\"News\\\/Opinion\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/\",\"name\":\"Revision Control Systems: Quick Git Notes | Altoros\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/07\\\/Git-Logo.gif\",\"datePublished\":\"2010-07-06T14:34:12+00:00\",\"dateModified\":\"2020-04-13T08:07:34+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/3d914db6ad1b2908c32c0dc5dcabc420\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/07\\\/Git-Logo.gif\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/07\\\/Git-Logo.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/revision-control-systems-quick-git-notes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Revision Control Systems: Quick Git Notes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/3d914db6ad1b2908c32c0dc5dcabc420\",\"name\":\"Alex Khizhniak\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/druzya-edit1-150x150.jpg\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/druzya-edit1-150x150.jpg\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/druzya-edit1-150x150.jpg\",\"caption\":\"Alex Khizhniak\"},\"description\":\"Alex Khizhniak is Director of Technical Content Strategy at Altoros and a cofounder of a local Java User Group. Managing distributed teams since 2004, he has gained experience as a journalist, an editor-in-chief, a technical writer, a technology evangelist, a project manager, and a product owner. Alex is obsessed with AI\\\/ML, data science, data integration, ETL\\\/DWH, data quality, databases (SQL\\\/NoSQL), big data, IoT, and BI. The articles and industry reports he created or helped to publish reached out to 3,000,000+ tech-savvy readers. Some of the pieces were covered on TechRepublic, ebizQ, NetworkWorld, CIO.com, etc. Find him on Twitter at @alxkh.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/alxkh\"],\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/author\\\/alex\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Revision Control Systems: Quick Git Notes | Altoros","description":"This blog post explores Git functionality and capabilities, as well as shares some commands to create a public repository.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/","og_locale":"en_US","og_type":"article","og_title":"Revision Control Systems: Quick Git Notes | Altoros","og_description":"A short introduction to Git It sometimes occurs that employees of a company don&#8217;t use any version control system, because they think working with a version controller takes more time than working without it. The reality is that without such a system development-critical workflows lack proper organization. There is no [...]","og_url":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/","og_site_name":"Altoros","article_published_time":"2010-07-06T14:34:12+00:00","article_modified_time":"2020-04-13T08:07:34+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Git-Logo.gif","type":"image\/gif"}],"author":"Alex Khizhniak","twitter_misc":{"Written by":"Alex Khizhniak","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#article","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/"},"author":{"name":"Alex Khizhniak","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3d914db6ad1b2908c32c0dc5dcabc420"},"headline":"Revision Control Systems: Quick Git Notes","datePublished":"2010-07-06T14:34:12+00:00","dateModified":"2020-04-13T08:07:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/"},"wordCount":1317,"commentCount":0,"image":{"@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Git-Logo.gif","keywords":["Research and Development"],"articleSection":["News\/Opinion"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/","url":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/","name":"Revision Control Systems: Quick Git Notes | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Git-Logo.gif","datePublished":"2010-07-06T14:34:12+00:00","dateModified":"2020-04-13T08:07:34+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3d914db6ad1b2908c32c0dc5dcabc420"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Git-Logo.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/07\/Git-Logo.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/revision-control-systems-quick-git-notes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Revision Control Systems: Quick Git Notes"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3d914db6ad1b2908c32c0dc5dcabc420","name":"Alex Khizhniak","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/06\/druzya-edit1-150x150.jpg","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/06\/druzya-edit1-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/06\/druzya-edit1-150x150.jpg","caption":"Alex Khizhniak"},"description":"Alex Khizhniak is Director of Technical Content Strategy at Altoros and a cofounder of a local Java User Group. Managing distributed teams since 2004, he has gained experience as a journalist, an editor-in-chief, a technical writer, a technology evangelist, a project manager, and a product owner. Alex is obsessed with AI\/ML, data science, data integration, ETL\/DWH, data quality, databases (SQL\/NoSQL), big data, IoT, and BI. The articles and industry reports he created or helped to publish reached out to 3,000,000+ tech-savvy readers. Some of the pieces were covered on TechRepublic, ebizQ, NetworkWorld, CIO.com, etc. Find him on Twitter at @alxkh.","sameAs":["https:\/\/x.com\/https:\/\/twitter.com\/alxkh"],"url":"https:\/\/www.altoros.com\/blog\/author\/alex\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/50391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=50391"}],"version-history":[{"count":30,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/50391\/revisions"}],"predecessor-version":[{"id":53217,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/50391\/revisions\/53217"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/50411"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=50391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=50391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=50391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}