diff --git a/LDP/users/Jason-Evans/github.adoc b/LDP/users/Jason-Evans/github.adoc new file mode 100644 index 00000000..4f8d437c --- /dev/null +++ b/LDP/users/Jason-Evans/github.adoc @@ -0,0 +1,511 @@ +[[share-modal]] +[[share]] +Share +----- + +link:[] + +* [[sbTwitter]] ++ +http://twitter.com/share?text=How%20To%20Use%20Git%20Effectively&url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=twshare[] +http://twitter.com/share?text=How%20To%20Use%20Git%20Effectively&url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=twshare[Twitter] +* [[sbFacebook]] ++ +https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=fbshare[] +https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=fbshare[Facebook] +* [[sbGoogle]] ++ +https://plus.google.com/share?url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=gpshare[] +https://plus.google.com/share?url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=gpshare[Google+] +* [[sbYC]] ++ +https://news.ycombinator.com/submitlink?t=How%20To%20Use%20Git%20Effectively&u=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=hnshare[] +https://news.ycombinator.com/submitlink?t=How%20To%20Use%20Git%20Effectively&u=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=hnshare[Hacker +News] + +[[contents-modal]] +[[contents]] +Contents +-------- + +link:[] + +[[share-modal]] +[[share-1]] +Share +----- + +link:[] + +* [[sbTwitter]] ++ +http://twitter.com/share?text=How%20To%20Use%20Git%20Effectively&url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=twshare[] +http://twitter.com/share?text=How%20To%20Use%20Git%20Effectively&url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=twshare[Twitter] +* [[sbFacebook]] ++ +https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=fbshare[] +https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=fbshare[Facebook] +* [[sbGoogle]] ++ +https://plus.google.com/share?url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=gpshare[] +https://plus.google.com/share?url=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=gpshare[Google+] +* [[sbYC]] ++ +https://news.ycombinator.com/submitlink?t=How%20To%20Use%20Git%20Effectively&u=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=hnshare[] +https://news.ycombinator.com/submitlink?t=How%20To%20Use%20Git%20Effectively&u=https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively?utm_content=how-to-use-git-effectively&utm_medium=community&utm_source=hnshare[Hacker +News] + +[[newsletter-signup-dialog]] +javascript:;[×] + +[[sign-up-for-our-newsletter.]] +Sign up for our newsletter. ++++++++++++++++++++++++++++ + +Get the latest tutorials on SysAdmin and open source topics. + +Sign Up + +[[entrance]] +link:/community/auth/digitalocean?display=sessionless+register[Sign Up] +link:/community/auth/digitalocean[Log In] + +javascript:void(0);[] + +submit + +* link:/community/tutorials[Tutorials] +* link:/community/questions[Questions] +* link:/community/projects[Projects] +* http://do.co/DOcommunity[Meetups] +* https://www.digitalocean.com/[Main Site] + +https://www.digitalocean.com/[] link:/community[Community] + +link:[Menu] + +* link:/community/tutorials[Tutorials] +* link:/community/questions[Questions] +* link:/community/projects[Projects] +* http://do.co/DOcommunity[Meetups] +* https://www.digitalocean.com/[Main Site] + +[[entrance]] +link:/community/auth/digitalocean?display=sessionless+register[Sign Up] +link:/community/auth/digitalocean[Log In] + +submit + +[[btn-wrap]] +link:/community/search[ View All Results] + +HeartedHeart + +32 + + 27 + +link:#[ Share ] + +javascript:void(0);[Contents ] + +javascript:void(0);[Contents ] + +image:https://community-cdn-digitalocean-com.global.ssl.fastly.net/assets/tutorials/images/large/021314git_twitter.png?1426699534[How +To Use Git Effectively,title="How To Use Git Effectively"] + +image:https://community-cdn-digitalocean-com.global.ssl.fastly.net/assets/tutorials/images/large/021314git_twitter.png?1426699534[How +To Use Git Effectively,title="How To Use Git Effectively"] + +javascript:void();[] We hope you find this tutorial helpful. In addition +to guides like this one, we provide simple cloud infrastructure for +developers. +https://www.digitalocean.com/?utm_medium=community&utm_source=community_gencta&utm_campaign=needaserver&utm_content=how-to-use-git-effectively[Learn +more →] + +[[how-to-use-git-effectively]] +How To Use Git Effectively +-------------------------- + + Mar 6, 2013 link:/community/tags/git?type=tutorials[Git] + +[[tutorial-series]] +Tutorial Series +~~~~~~~~~~~~~~~ + +This tutorial is part 2 of 3 in the series: +link:#tutorial_series_1[Introduction to Git: Installation, Usage, and +Branches] + +[[tutorial_series_1]] +javascript:void(0);[] + +link:/community/tutorial_series/introduction-to-git-installation-usage-and-branches[Introduction +to Git: Installation, Usage, and Branches] + +This series covers the installation and usage of git on an Ubuntu 14.04 +server. After completing the series, the reader should feel comfortable +installing and using git, as well as how to create two branches (master +and develop) and how to merge code from the development stage to +production. + +1. [[how-to-install-git-on-ubuntu-14.04]] +link:/community/tutorials/how-to-install-git-on-ubuntu-14-04[How To +Install Git on Ubuntu 14.04] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ +April 23, 2014 ++ + 50 + + 3 + +By link:/community/users/jellingwood[Justin Ellingwood] ++ +2. [[how-to-use-git-effectively-1]] +link:/community/tutorials/how-to-use-git-effectively[How To Use Git +Effectively] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ +March 6, 2013 ++ + 32 + + 28 ++ +3. [[how-to-use-git-branches]] +link:/community/tutorials/how-to-use-git-branches[How To Use Git +Branches] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ +March 18, 2013 ++ + 10 + + 10 ++ + +link:/community/tutorials/how-to-install-git-on-ubuntu-14-04[Previous +Tutorial] link:/community/tutorials/how-to-use-git-branches[Next +Tutorial] + +This article assumes that you have git installed and that your global +configuration settings (namely username and email) are properly set. If +this is not the case, please refer to the +https://www.digitalocean.com/community/articles/how-to-install-git-on-ubuntu-12-04[git +introduction tutorial]. + +Git is a very useful piece of software to help streamline development +for programming projects. It comes with no language requirements nor +file structure requirements, leaving it open for the developers to +decide how they want to structure their workflow. + +Before using git for your development, it's a good idea to plan out your +workflow. The workflow decision is typically based on the size and scale +of your project. To gain a basic understanding of git for now, a simple, +single-branch workflow will suffice. By default, the first branch on any +git project is called "master". In a following tutorial in this series, +you will learn how to create other branches. + +Let's create our first project and call it "testing". (If you already +have a project that you want to import to git you can skip down to +link:#existing[that section].) + +[[creating-your-workspace]] +Creating your workspace +~~~~~~~~~~~~~~~~~~~~~~~ + +Just like you want to have a good, clean work environment, the same idea +applies to where you do your coding, especially if you're going to +contribute to a number of projects at the same time. A good suggestion +might be to have a folder called git in your home directory which has +subfolders for each of your individual projects. + +The first thing we need to do is create our workspace environment: + +.... +user@host ~ $ mkdir -p ~/git/testing ; cd ~/git/testing +.... + +The above commands will accomplish two things: 1) It creates a directory +called "git" in our home directory and then creates a subdirectory +inside of that called "testing" (this is where our project will actually +be stored). 2) It brings us to our project's base directory. + +Once inside that directory, we need to create a few files that will be +in our project. In this step, you can either follow along and create a +few dummy files for testing purposes or you can create files/directories +you wish that are going to be part of your project. + +We are going to create a test file to use in our repository: + +.... +user@host ~/git/testing $ touch file +.... + +Once all your project files are in your workspace, you need to start +tracking your files with git. The next step explains that process. + +[[existing]] +Converting an existing project into a workspace environment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Once all the files are in your git workspace, you need to tell git that +you want to use your current directory as a git environment. + +.... +user@host ~/git/testing $ git init +Initialized empty Git repository in /home/user/git/testing/.git/ +.... + +Once your have initialized your new empty repository, you can add your +files. + +The following will add all files and directories to your newly created +repository: + +.... +user@host ~/git/testing $ git add . +.... + +In this case, no output is good output. Unfortunately, git does not +always inform you if something worked. + +Every time you add or make changes to files, you need to write a commit +message. The next section describes what a commit message is and how to +write one. + +[[creating-a-commit-message]] +Creating a commit message +~~~~~~~~~~~~~~~~~~~~~~~~~ + +A commit message is a short message explaining the changes that you've +made. It is required before sending your coding changes off (which is +called a push) and it is a good way to communicate to your co-developers +what to expect from your changes. This section will explain how to +create them. + +Commit messages are generally rather short, between one and two +sentences explaining what your change did. It is good practice to commit +each individual change before you do a push. You can push as many +commits as you like. The only requirement for any commit is that it +involves at least one file and it has a message. A push must have at +least one commit. + +Continuing with our example, we are going to create the message for our +initial commit: + +.... +user@host ~/git/testing $ git commit -m "Initial Commit" -a +[master (root-commit) 1b830f8] initial commit + 0 files changed + create mode 100644 file +.... + +There are two important parameters of the above command. The first is +-m, which signifies that our commit message (in this case "Initial +Commit") is going to follow. Secondly, the -a signifies that we want our +commit message to be applied to all added or modified files. This is +okay for the first commit, but generally you should specify the +individual files or directories that we want to commit. + +We could have also done: + +.... +user@host ~/git/testing $ git commit -m "Initial Commit" file +.... + +To specify a particular file to commit. To add additional files or +directories, you just add a space separated list to the end of that +command. + +[[pushing-changes-to-a-remote-server]] +Pushing changes to a remote server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Up until this point, we have done everything on our local server. That's +certainly an option to use git locally, if you want to have any easy way +to have version control of your files. If you want to work with a team +of developers, however, you're going to need to push changes to a remote +server. This section will explain how to do that. + +The first step to being able to push code to a remote server is +providing the URL where the repository lives and giving it a name. To +configure a remote repository to use and to see a list of all remotes +(you can have more than one), type the following: + +.... +user@host ~/git/testing $ git remote add origin ssh://git@git.domain.tld/repository.git +user@host ~/git/testing $ git remote -v +origin ssh://git@git.domain.tld/repository.git (fetch) +origin ssh://git@git.domain.tld/repository.git (push) +.... + +The first command adds a remote, called "origin", and sets the URL to +ssh://git@git.domain.tld/repository.git. + +You can name your remote whatever you'd like, but the URL needs to point +to an actual remote repository. For example, if you wanted to push code +to GitHub, you would need to use the repository URL that they provide. + +Once you have a remote configured, you are now able to push your code. + +You can push code to a remote server by typing the following: + +.... +user@host ~/git/testing $ git push origin master +Counting objects: 4, done. +Delta compression using up to 2 threads. +Compressing objects: 100% (2/2), done. +Writing objects: 100% (3/3), 266 bytes, done. +Total 3 (delta 1), reused 1 (delta 0) +To ssh://git@git.domain.tld/repository.git + 0e78fdf..e6a8ddc master -> master +.... + +"git push" tells git that we want to push our changes, "origin" is the +name of our newly-configured remote server and "master" is the name of +the first branch. + +In the future, when you have commits that you want to push to the +server, you can simply type "git push". + +I hope this article provided you with a basic understanding of how git +can be used effectively for a team of developers. The next article in +this series will provide a more in-depth analysis of git branches and +why they are so effective. + +By Jason Kurtz + +HeartedHeart + +32 + + Subscribe Subscribed javascript:void(0);[] + +link:#[ Share ] + +[[tutorial-series-1]] +Tutorial Series +~~~~~~~~~~~~~~~ + +[[tutorial_series_1]] +link:/community/tutorial_series/introduction-to-git-installation-usage-and-branches[Introduction +to Git: Installation, Usage, and Branches] + +This series covers the installation and usage of git on an Ubuntu 14.04 +server. After completing the series, the reader should feel comfortable +installing and using git, as well as how to create two branches (master +and develop) and how to merge code from the development stage to +production. + +1. [[how-to-install-git-on-ubuntu-14.04-1]] +link:/community/tutorials/how-to-install-git-on-ubuntu-14-04[How To +Install Git on Ubuntu 14.04] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ +April 23, 2014 ++ + 50 + + 3 + +By link:/community/users/jellingwood[Justin Ellingwood] ++ +2. [[how-to-use-git-effectively-2]] +link:/community/tutorials/how-to-use-git-effectively[How To Use Git +Effectively] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ +March 6, 2013 ++ + 32 + + 28 ++ +3. [[how-to-use-git-branches-1]] +link:/community/tutorials/how-to-use-git-branches[How To Use Git +Branches] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ +March 18, 2013 ++ + 10 + + 10 ++ + +[[spin-up-an-ssd-cloud-server-in-under-a-minute.]] +Spin up an SSD cloud server in under a minute. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Simple setup. Full root access. Straightforward pricing. + +https://www.digitalocean.com/?utm_medium=community&utm_source=community_gencta&utm_campaign=needaserver&utm_content=how-to-use-git-effectively[Deploy +Server] + +[[related-tutorials]] +Related Tutorials +~~~~~~~~~~~~~~~~~ + +* link:/community/tutorials/how-to-use-the-gitlab-user-interface-to-manage-projects[How +To Use the GitLab User Interface To Manage Projects] +* link:/community/tutorials/how-to-set-up-a-private-git-server-on-a-vps[How +To Set Up a Private Git Server on a VPS] +* link:/community/tutorials/how-to-use-git-branches[How To Use Git +Branches] +* link:/community/tutorials/how-to-create-a-blog-with-hexo-on-ubuntu-14-04[How +to Create a Blog with Hexo On Ubuntu 14.04] +* link:/community/tutorials/how-to-deploy-a-rails-app-with-git-hooks-on-ubuntu-14-04[How +To Deploy a Rails App with Git Hooks on Ubuntu 14.04] + +[[tutorial_210]] +[[comments]] +27 Comments ++++++++++++ + +link:/community/auth/digitalocean[Log In to Comment] + +https://creativecommons.org/licenses/by-nc-sa/4.0/[image:/assets/community/creativecommons-654928f5ebfbb75f4543af8903eabfe4.png[Creative +Commons License]] + +This work is licensed under a +https://creativecommons.org/licenses/by-nc-sa/4.0/[Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International License]. + +Copyright © 2016 DigitalOcean™ Inc. + +* link:/community[Community] +* link:/community/tutorials[Tutorials] +* link:/community/questions[Questions] +* link:/community/projects[Projects] +* link:/community/tags[Tags] +* link:/community/tutorials/feed[RSS ] + + + + +* https://www.digitalocean.com/legal/terms/[Terms, Privacy, & Copyright] +* https://www.digitalocean.com/security/[Security] +* link:#[Report a Bug] +* link:/community/get-paid-to-write[Get Paid to Write] + +[[sign-in-modal]] +[[sign-up]] +Sign Up +------- + +link:[] + +Not so fast, you must have an account before you can do that. + +link:/community/auth/digitalocean[Log In] +link:/community/auth/digitalocean?display=sessionless+register[Sign Up] + +[[report-a-bug-modal]] +[[report-a-bug]] +Report a Bug +------------ + +link:[] + +Use this form to report bugs related to the Community