Open Source Comes to Campus/Curriculum/Directory: Difference between revisions

imported>Shauna
 
(11 intermediate revisions by one other user not shown)
Line 3:
= Overview (ie The Plan) =
 
There's [https://github.com/FOSSdirectory/FOSSdirectory.github.io a repository] sitting on [http://en.wikipedia.org/wiki/GitHub Github] which contains a blanklist profileof pagecool people in open source - a directory, if you will. You're going to make a copy of the directory, edit it, and use it as your own! (For now, at least. You can delete it later if you're shy.) The repository also contains a "directory" page which will let you link to everyone else at the event.
 
Some of the changes you make will be just for your copies of the repository. Other changes you'll want to "push back" to [https://github.com/FOSSdirectory/FOSSdirectory.github.io the original repository]. We'll talk about how you can do that below.
 
Let's get started!
Line 65 ⟶ 63:
* Undo that change, with your editor, save, and then reload in the browser. Make sure what you see in the browser reflects that change.
 
<blockquote>Here's a completely optional but neat trick: you can see the changes you've made by typing <code>git diff</code>. If you've fully undone your change, entering <code>git diff</code> should return nothing.</blockquote>
== Add your username to the directory ==
 
== Add your usernameyourself to the directory ==
The first thing we're going to do is make a simple change: you're going to add your username to the directory page.
 
The first thing we're going to do is make a simple change: you're going to add your username to the directory pageitself.
To do this, open up directory.html. Find the list of links to users. If you're familiar with HTML, it should be easy enough for you to find. If you're not familiar with html, the line you're looking for looks like this:
<a href="#" class="list-group-item">A person!</a> <!-- Copy this line and add your info. -->
 
To do this, open up directoryindex.html. Find the list of links to users. If you're familiar with HTML, it should be easy enough for you to find. If you're not familiar with html, the line you're looking for looks like this:
You want to add two piece of information. First, replace "A person!" with your github username. Then, between the quote marks after "a href", add a link to your website (http://{yourname}.github.io).
<a href="#./profiles/" class="list-group-item">A person!</a> <!-- Copy this line and add your info. Don't forget the http:// -->
 
You want to add two piece of information. First, replace "A person!" with your github usernamename. Then, between the quote marks after "a href", add a link to your websiteprofile (http://{yourname}page. Your profile will be named <code>$your-github-username.io)html</code>.
 
The second thing you're going to do is make your own profile page so that the link you just made goes somewhere! To do this, you'll want to make a copy of the template:
cp template.html profiles/$your-github-username.html
 
You can then open up the new file and edit it to your heart's content! You can add information about yourself, the projects you want to learn about, the skills you want to contribute, and more.
 
== Commit and push ==
Line 80 ⟶ 85:
git status
 
You can commitmake sure git is tracking your changes by typing "git add" followed by the files you've changed, for instance:
 
git add directoryindex.html
 
Once you've added the changes, you can "commit" them with a message specifying what you've changed.
 
git commit -m "I added myself to the directory!"
 
(What's the difference between add and commit, you might ask? "add" let's you specify which specific files you want to include in a commit. If you want to include all the files you've changed you can smoosh these two steps together with <code>git commit -a -m "I added myself to the directory!"</code>)
 
Now, publish those changes on Github by typing:
Line 100 ⟶ 107:
== Create pull request ==
 
ButNow what good is a directory of one? You'llyou want to send your change back to the original repository so it can keep track of all the cool new people making profiles. To do this, you'll want to create what's called a "pull request".
 
Visit your personal fork and click the "Pull requests" button on the right. This will offer you the chance to make a new pull request by clicking on "New pull request". Explain what you did, to make it easier for the repository's maintainer.
Line 112 ⟶ 119:
Sometimes your changes will not show because of caching. To get around this problem, add "?" to the end of the url.
 
== NowYou editcan keep editing your profile ==
 
Now youYou can go backcontinue to youredit localand copyadd and editto your profile. To do this, make changes in index.html. There are html comments next to the sections with text to edit. You should also feel free to make changes to the HTML and CSS, or to add additional images, code, etc as you desire.
 
Once you've made your changes, you can follow [[Open_Source_Comes_to_Campus/Curriculum/Directory#Commit_and_push | the steps above]] to push the changes to your website.
 
Congrats! You've made yourself a profile - and successfully used git!
 
= The Follow Up =
 
You might say "Wait! I want a recent copy of thatthe awesome,directory fullwith directoryall forthe mynew ownprofiles sitepeople have added. How do I getdo those changes backthat?"
 
There's totally a way to do it, but it's kind of complicated. If your mind is already full with the above activity, you should take a break, and come back to this later if you want to.
Line 141 ⟶ 148:
Origin is the default name for your remote repository. The urls you see should correspond to the urls used in the "git clone" command above. Right now your only remote is your personal copy of the repository. That's fine for pushing changes, since you need to go through the personal copy to submit pull requests. But what if you want to get an up to date version of the main repository? To do this, you'll need to add the main repository as a remote.
 
ReplaceBelow, replace $name with whatever you want to label the remote, and $url with the github url for the main repository (that is, <code>https://github.com/FOSSdirectory/FOSSdirectory.github.io.git</code>). Execute this command.
To do this, type:
 
git remote add $name $url
 
Replace $name with whatever you want to label the remote, and $url with the github url for the main repository (that is, <code>https://github.com/FOSSdirectory/FOSSdirectory.github.io.git</code>).
When you do the "git remote -v" command, you should see that you now have two sets of fetch/push listings.
 
Line 163 ⟶ 168:
== Pulling from the original repository ==
 
You want to get the most up to date version of directoryindex.html from the original repository. To get an updated version of the main repository, you can type:
 
git fetch $name
git merge $name/master
 
In our case, though, this willmay cause a merge conflict. A merge conflict happens when two people (or the same person, at two different points in time) edit the same part of the same file. In our case, this happens both in index.html and directory.html. Let's take a moment to think about it.
 
<blockquote>If a merge conflict didn't happen this time, you can force it to happen by checking to see the [https://github.com/FOSSdirectory/FOSSdirectory.github.io/commits/master the most recent change] in the original repository. Then, you can make a random edit on the same line as that change. Make sure to add and commit your change before continuing.</blockquote>
Your personal repository should have an index.html that's been customized to you. The index.html from the original, however, will only be the blank template version. You want to keep '''your''' index.html. Your directory.html is mostly empty, however, while the directory.html from the original has been updated with links. You want to add '''their''' directory.html.
 
So now there are two different index.htmls, your local copy and the origin. How do you reconcile the two?
There are two ways to do this. We'll go over both.
 
== Option A: Discard/keep within files ==
Line 188 ⟶ 193:
Dealing with merge conflicts can get messy, especially when there are a lot of changes and you want to keep things from both versions of the file.
 
In our case, though, we don't want to take things from each version of the file. We just want to update one file, directory index.html.
 
Luckily, there's a way to to this at the file level:
 
git checkout --theirs directoryindex.html
 
Again, once you have done this you will need to [[Open_Source_Comes_to_Campus/Curriculum/Directory#Commit_and_push | add and commit]] your changes.
Anonymous user