From b0e1ebbc8865021ef454711483eae117661f3ca5 Mon Sep 17 00:00:00 2001
From: mukundan314
Date: Fri, 27 Jul 2018 10:02:07 +0530
Subject: [PATCH 1/8] fix grammer
---
README.md | 2 +-
contents/cooley_tukey/cooley_tukey.md | 2 +-
.../gaussian_elimination/gaussian_elimination.md | 6 +++---
.../git_and_version_control.md | 16 ++++++++--------
contents/multiplication/multiplication.md | 2 +-
.../my_introduction_to_hobby_programming.md | 10 +++++-----
6 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/README.md b/README.md
index 14d305e27..aedeaf69e 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ and live coded on Twitch: https://www.twitch.tv/simuleios.
If you would like to communicate more directly, please feel free to go to our discord: https://discord.gg/Pr2E9S6.
-Note that the this project is essentially a book about algorithms collaboratively written by an online community.
+Note that this project is essentially a book about algorithms collaboratively written by an online community.
Fortunately, there are a lot of algorithms out there, which means that there is a lot of content material available.
Unfortunately, this means that we will probably never cover every algorithm ever created and instead need to focus on what the community sees as useful and necessary.
That said, we'll still cover a few algorithms for fun that have very little, if any practical purpose.
diff --git a/contents/cooley_tukey/cooley_tukey.md b/contents/cooley_tukey/cooley_tukey.md
index 99f152922..4b12c1702 100644
--- a/contents/cooley_tukey/cooley_tukey.md
+++ b/contents/cooley_tukey/cooley_tukey.md
@@ -129,7 +129,7 @@ In the end, the code looks like:
{% endmethod %}
As a side note, we are enforcing that the array must be a power of 2 for the operation to work.
-This is a limitation of the fact that we are using recursion and dividing the array in 2 every time; however, if your array is not a power of 2, you can simply pad the leftover space with 0's until your array is a power of 2.
+This is a limitation of the fact that we are using recursion and dividing the array into 2 every time; however, if your array is not a power of 2, you can simply pad the leftover space with 0's until your array is a power of 2.
The above method is a perfectly valid FFT; however, it is missing the pictorial heart and soul of the Cooley-Tukey algorithm: Butterfly Diagrams.
diff --git a/contents/gaussian_elimination/gaussian_elimination.md b/contents/gaussian_elimination/gaussian_elimination.md
index 6548edd05..cf57e08f8 100644
--- a/contents/gaussian_elimination/gaussian_elimination.md
+++ b/contents/gaussian_elimination/gaussian_elimination.md
@@ -213,9 +213,9 @@ For this reason, I have split this section into two parts. One will cover the an
In the end, reducing large systems of equations boils down to a game you play on a seemingly random matrix where you have the following moves available:
-1. You can swap any two rows
-2. You can multiply any row by a non-zero scale value
-3. You can add any row to a multiple of any other row
+1. swap any two rows
+2. multiply any row by a non-zero scale value
+3. add any row to a multiple of any other row
That's it.
Before continuing, I suggest you try to recreate the row echelon matrix we made above.
diff --git a/contents/git_and_version_control/git_and_version_control.md b/contents/git_and_version_control/git_and_version_control.md
index c7d839b9e..465db9b86 100644
--- a/contents/git_and_version_control/git_and_version_control.md
+++ b/contents/git_and_version_control/git_and_version_control.md
@@ -51,7 +51,7 @@ git config --global user.email name@email.com
Obviously, use your own name and e-mail... unless your name is actually *name* and your e-mail is actually *name@email.com*, in which case the above commands are correct.
In the rare case that a user named "name" with the e-mail "name@email.com" is reading this, I apologize for spoiling your anonymity.
For everyone else, remember that git is meant to facilitate collaborative code development, so we need to know who is submitting code so we can communicate more effectively later.
-That said, it is alright to use a username and e-mail address that does not spoil your identity in the real world, so long as you are reachable by the information provided.
+That said, it is alright to use an username and e-mail address that does not spoil your identity in the real world, so long as you are reachable by the information provided.
### Finding some code
@@ -73,7 +73,7 @@ Regardless, as long as there is a repository under your username on github, we c
-Note that there are 2 provided urls here, one for *ssh* and another for *https*. From the user's perspective, the difference between the two is minimal: ssh requires the user to type only a password when interacting with the remote github repository, while https requires both a username and password.
+Note that there are 2 provided urls here, one for *ssh* and another for *https*. From the user's perspective, the difference between the two is minimal: ssh requires the user to type only a password when interacting with the remote github repository, while https requires both an username and password.
Now, you will probably be interacting with github a lot, so ssh will definitely save time and is preferred for many people who use git a lot; however, [there is some initial set-up](https://help.github.com/articles/connecting-to-github-with-ssh/).
If you want, we can discuss the set-up in more detail later (just let me know!), but for now, we'll stick with https because it's more familiar to new users.
@@ -139,7 +139,7 @@ git status
```
This will show that `CONTRIBUTORS.md` has been modified.
-If we want to save our changes, we need to add all of the files with changes to them to a package called a `commit`.
+If we want to save our changes, we need to add all the files with changes to them to a package called a `commit`.
To add the files, simply type:
```
@@ -214,7 +214,7 @@ To switch branches, use
git checkout branch
```
-And this will change all of the files on your local directory to match the branch you have swapped to.
+And this will change all the files on your local directory to match the branch you have swapped to.
Note that if you have local changes that will be overwritten when changing branches, git will note these changes and tell you to do something about them before switching to a new branch.
If you want to get rid of the changes, you could delete any files that are causing conflicts; however, this is barbaric and should be avoided in civilized society.
Another solution is to use a feature of git called the `stash`.
@@ -276,12 +276,12 @@ The easiest way to do this (in my opinion) can be found here: [https://help.gith
Note that there are a lot of good tools for this and everyone has their favorite choice.
I don't expect for too many users to run into merge conflicts while working with the Algorithm Archive, so I will omit much more discussion here, but let me know if you think I should cover this in more detail.
It's an incredibly difficult aspect of using git and will drive you nuts the first tie you see it, but after that, it will be much more straightforward.
-Also: let me know if there's any tools you like, and I'll add them to this guide here.
+Also, let me know if there's any tools you like, and I'll add them to this guide here.
### Interacting with github
To this point, we have introduced the concept of `remote`s and how to set them up, but we have not discussed how to interact with them.
-For the most part, there are only a few commands to keep in mind. the easiest one to explain is
+For the most part, there are only a few commands to keep in mind. The easiest one to explain is
```
git push
@@ -349,14 +349,14 @@ One way to reverse the commit completely is with
git revert commit
```
-where `commit` is whatever commit you want to undo from your `git log`.
+Where `commit` is whatever commit you want to undo from your `git log`.
Assuming you are working with a small team and don't mind having a somewhat dirty commit history where your mistakes haunt you forever in your `git log`, this is fine; however, if you want to remove the commit completely, you might need to think about using another command:
```
git rebase
```
-the problem is that `git rebase` is complicated and could potentially destroy your codebase if it's used inappropriately.
+The problem is that `git rebase` is complicated and could potentially destroy your codebase if it's used inappropriately.
Because of this, I often just live with my mistakes; however, in rare cases, having a clean `git log` is incredibly important.
I am not a git magician (yet), so I will not delve into what is essentially black magic to me. Instead, I'll link a guide: [https://git-scm.com/book/en/v2/Git-Branching-Rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing).
diff --git a/contents/multiplication/multiplication.md b/contents/multiplication/multiplication.md
index d6b1abeec..9e5781b38 100644
--- a/contents/multiplication/multiplication.md
+++ b/contents/multiplication/multiplication.md
@@ -7,7 +7,7 @@ In some sense, this is what I love about computer science research!
It takes operations that everyone knows and loves, abstracts them, and transforms them into fast and efficient methods for the computer to implement.
Sometimes these algorithms are completely baffling.
I remember laughing for ten minutes after I heard that fft convolutions could be used to calculate a simple integer multiplicationing the Schönhage–Strassen algorithm.
-I thought, "Why would you ever want to use an fft to do something to trivial? This has to be a joke!"
+I thought, "Why would you ever want to use a fft to do something to trivial? This has to be a joke!"
Oh boy was I wrong.
The Schönhage–Strassen algorithm was actually the most efficient method to multiply two numbers until around 2007 when it was dethroned by the Fürer's algorithm.
diff --git a/contents/my_introduction_to_hobby_programming/my_introduction_to_hobby_programming.md b/contents/my_introduction_to_hobby_programming/my_introduction_to_hobby_programming.md
index 449264f37..332492f6c 100644
--- a/contents/my_introduction_to_hobby_programming/my_introduction_to_hobby_programming.md
+++ b/contents/my_introduction_to_hobby_programming/my_introduction_to_hobby_programming.md
@@ -20,19 +20,19 @@ Remember how I said I couldn't get the virus software to work on my computer? Ye
I don't remember the exact order, but I knew the key players were there: Ubuntu, Mint, Fedora, Debian, and Arch. Now, here's where my years of gaming experience came in. I personified each distribution as a class in a game world. Ubuntu was the easy to use axe-wielding warrior that would get the job done. Fedora was the Archer in the back with a feather in his cap and a quick quip for everything. Debian was the grandmotherly spellcaster just trying to keep everyone alive. Then there was Arch, the one who rushed into combat without any armor and uses only the environment as a weapon.
-Which one did I choose? Arch. I've always been a fan of playing the underdog characters. In fact, when I looked up what made Arch Arch, I found the [Archwiki](https://wiki.Archlinux.org/), which was absolutely beautiful and filled with any information I could ever want to know about the distribution, including a page on ["The Arch Way"](https://wiki.Archlinux.org/index.php/Arch_Linux#Principles) -- Which now redirects to a page about Archlinux principles instead. After reading through it, there was not a single shadow of a doubt in my mind. Arch was the distribution for me.
+Which one did I choose? Arch. I've always been a fan of playing the underdog characters. In fact, when I looked up what made Arch Arch, I found the [Archwiki](https://wiki.Archlinux.org/), which was absolutely beautiful and filled with any information I could ever want to know about the distribution, including a page on ["The Arch Way"](https://wiki.Archlinux.org/index.php/Arch_Linux#Principles) -- Which now redirects to a page about Archlinux principles instead. After reading through it, there was not a single shadow of a doubt in my mind. Arch was the distribution for me.
In hindsight, this could have been the most disastrous decision of my life. I hope that at this point, you understand how bad I was with computers, and a slow internet connection didn't help. The next day, I went to the store and bought a 25 pack of writable DVD's. So now for the hard part: Installation.
#### Step 1: Burning to a disk
-Now, I know many of you reading think this is an easy thing to do. In fact, I also currently think it's an easy thing to do. Back then, though, it was nearly impossible. I wasted 3-4 DVD's backing up my Windows set-up, just in case. Then I wasted another 15 trying to figure out what to do. At first, I just copied the Archiso onto the disk. That obviously didn't work. It took me ~5 hours to realize that *burning* to a disk was different than simply dragging and dropping files. I then needed to figure out how to do the burning with Windows Vista. By the time I figured this out, nearly my entire stack of DVD's was gone. Oh well, lessons learned, right?
+Now, I know many of you reading think this is an easy thing to do. In fact, I also currently think it's an easy thing to do. Back then, though, it was nearly impossible. I wasted 3-4 DVD's backing up my Windows set-up, just in case. Then I wasted another 15 trying to figure out what to do. At first, I just copied the Archiso onto the disk. That obviously didn't work. It took me ~5 hours to realize that *burning* to a disk was different from simply dragging and dropping files. I then needed to figure out how to do the burning with Windows Vista. By the time I figured this out, nearly my entire stack of DVD's was gone. Oh well, lessons learned, right?
#### Step 2: Just type "root"
After the disk burning fiasco, I thought to myself, *Alright. It'll only get easier from here, right?* Nope. I booted up the Archiso and up popped a prompt talking about how to install Arch. I don't remember what it said exactly, but I know it mentioned that if you wanted to install Arch on a "kerosene-powered cheese grater" that you should consult the wiki. Now, here's the thing: for anyone else, this would just be an idle quip -- something to chuckle at before moving on, but I was not able to move past this prompt. Right under it was a rather surprising adversary, the phrase `Archiso login:` with a blinking cursor.
-In my head, I knew what this meant. I needed to create my username, right? So I tried putting in what I wanted my username to be. No luck. I tried any number of different combinations of letters and characters. I even tried our wifi password. Nothing. I tried re-burning the disk a few more times, but I was still completely lost. What did they want? What was I supposed to type to move forward with the installation? I couldn't figure it out, and after hours of sitting there, looking at a blinking prompt, I started wondering if my computer was actually a kerosene-powered cheese grater and consulted the wiki, but even that wasn't particularly clear. So I googled some more, and then some more and more. Somehow, I stumbled onto a page that gave me the answer -- the magical password that would allow me access to the Arch installer:
+In my head, I knew what this meant. I needed to create my username, right? So I tried putting in what I wanted my username to be. No luck. I tried any number of different combinations of letters and characters. I even tried our Wi-Fi password. Nothing. I tried re-burning the disk a few more times, but I was still completely lost. What did they want? What was I supposed to type to move forward with the installation? I couldn't figure it out, and after hours of sitting there, looking at a blinking prompt, I started wondering if my computer was actually a kerosene-powered cheese grater and consulted the wiki, but even that wasn't particularly clear. So I googled some more, and then some more and more. Somehow, I stumbled onto a page that gave me the answer -- the magical password that would allow me access to the Arch installer:
**root**
@@ -50,7 +50,7 @@ Truth be told, I learned a lot at this stage of the installation, including moun
In the middle of the installation, when all the packages were popping up, I remember getting a very particular error under the acronym DRDY. I didn't know what this meant. In fact, I don't think very many people did. The error said it was fatal, so I restarted the install from scratch. I got the same error, but this time in a different place, so I did the install again. And then again. And then again. I repeated the installation so many times that I had memorized every last part from start to finish. I had read all the guides online, and yet I was still getting that darned error! DRDY. What could it mean?
-Well, I didn't know, but at that point, it was late at night and I was a bit delirious. I phonetically sounded out the error and realized it sounded like the word "dirty." I figured this meant that the hard drive was dirty, so I unplugged it , blew on the socket, and plugged it back in. No more error.
+Well, I didn't know, but at that point, it was late at night and I was a bit delirious. I phonetically sounded out the error and realized it sounded like the word "dirty." I figured this meant that the hard drive was dirty, so I unplugged it, blew on the socket, and plugged it back in. No more error.
To this day, I don't know how or why this worked.
@@ -64,6 +64,6 @@ Blitz login:
The same as I saw in the installation before. Except this time, I didn't sit there waiting for hours, trying to figure out some password to enter my system. I simply entered my moniker and got to setting up my system.
-I'll be honest, even though this happened almost a decade ago, it is burned into my head as one of the best learning experiences I have ever had. I am sure many, many people would have found it incredibly frustrating. They would have thrown their computer at the wall, exclaiming, "What am I supposed to do?" For me, though, it was captivating. I would never see my computer in the same way again and to this day when I pop open a terminal, I cannot help but smile a little bit.
+I'll be honest, even though this happened almost a decade ago, it is burned into my head as one of the best learning experiences I have ever had. I am sure many, many people would have found it incredibly frustrating. They would have thrown their computer at the wall, exclaiming, "What am I supposed to do?" For me, though, it was captivating. I would never see my computer in the same way again and to this day when I pop open a terminal, I cannot help but smile a little.
Basically, since the first time I was able to directly interact with my computer, I have been captivated with the idea, and though I was not able use the knowledge until much later in my life, it stuck with me and definitely shaped my perspective of the world.
From 0f15fb77f95b7871ff0d4ab7a6b2aa1d069880c9 Mon Sep 17 00:00:00 2001
From: mukundan314
Date: Fri, 27 Jul 2018 10:41:58 +0530
Subject: [PATCH 2/8] Replace "an username" with "a username"
---
contents/git_and_version_control/git_and_version_control.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/contents/git_and_version_control/git_and_version_control.md b/contents/git_and_version_control/git_and_version_control.md
index 465db9b86..54410b187 100644
--- a/contents/git_and_version_control/git_and_version_control.md
+++ b/contents/git_and_version_control/git_and_version_control.md
@@ -51,7 +51,7 @@ git config --global user.email name@email.com
Obviously, use your own name and e-mail... unless your name is actually *name* and your e-mail is actually *name@email.com*, in which case the above commands are correct.
In the rare case that a user named "name" with the e-mail "name@email.com" is reading this, I apologize for spoiling your anonymity.
For everyone else, remember that git is meant to facilitate collaborative code development, so we need to know who is submitting code so we can communicate more effectively later.
-That said, it is alright to use an username and e-mail address that does not spoil your identity in the real world, so long as you are reachable by the information provided.
+That said, it is alright to use a username and e-mail address that does not spoil your identity in the real world, so long as you are reachable by the information provided.
### Finding some code
@@ -73,7 +73,7 @@ Regardless, as long as there is a repository under your username on github, we c
-Note that there are 2 provided urls here, one for *ssh* and another for *https*. From the user's perspective, the difference between the two is minimal: ssh requires the user to type only a password when interacting with the remote github repository, while https requires both an username and password.
+Note that there are 2 provided urls here, one for *ssh* and another for *https*. From the user's perspective, the difference between the two is minimal: ssh requires the user to type only a password when interacting with the remote github repository, while https requires both a username and password.
Now, you will probably be interacting with github a lot, so ssh will definitely save time and is preferred for many people who use git a lot; however, [there is some initial set-up](https://help.github.com/articles/connecting-to-github-with-ssh/).
If you want, we can discuss the set-up in more detail later (just let me know!), but for now, we'll stick with https because it's more familiar to new users.
From c3d1078fa49fb5d21c291cb15aa9ebef006aa0be Mon Sep 17 00:00:00 2001
From: Mukundan <30190448+Mukundan314@users.noreply.github.com>
Date: Fri, 27 Jul 2018 11:00:11 +0530
Subject: [PATCH 3/8] Update multiplication.md
---
contents/multiplication/multiplication.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/contents/multiplication/multiplication.md b/contents/multiplication/multiplication.md
index 9e5781b38..1068ca733 100644
--- a/contents/multiplication/multiplication.md
+++ b/contents/multiplication/multiplication.md
@@ -6,8 +6,8 @@ Even so, there are plenty of incredibly complicated algorithms out there to perf
In some sense, this is what I love about computer science research!
It takes operations that everyone knows and loves, abstracts them, and transforms them into fast and efficient methods for the computer to implement.
Sometimes these algorithms are completely baffling.
-I remember laughing for ten minutes after I heard that fft convolutions could be used to calculate a simple integer multiplicationing the Schönhage–Strassen algorithm.
-I thought, "Why would you ever want to use a fft to do something to trivial? This has to be a joke!"
+I remember laughing for ten minutes after I heard that an fft(ffast fourier transform) convolutions could be used to calculate a simple integer multiplicationing the Schönhage–Strassen algorithm.
+I thought, "Why would you ever want to use an fft to do something to trivial? This has to be a joke!"
Oh boy was I wrong.
The Schönhage–Strassen algorithm was actually the most efficient method to multiply two numbers until around 2007 when it was dethroned by the Fürer's algorithm.
From e6d5c36ceb8cdc5f1f5ec9beec08ee0f54fc5cec Mon Sep 17 00:00:00 2001
From: Mukundan <30190448+Mukundan314@users.noreply.github.com>
Date: Fri, 27 Jul 2018 11:29:29 +0530
Subject: [PATCH 4/8] Update multiplication.md
---
contents/multiplication/multiplication.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/contents/multiplication/multiplication.md b/contents/multiplication/multiplication.md
index 1068ca733..2b75ce0af 100644
--- a/contents/multiplication/multiplication.md
+++ b/contents/multiplication/multiplication.md
@@ -6,8 +6,8 @@ Even so, there are plenty of incredibly complicated algorithms out there to perf
In some sense, this is what I love about computer science research!
It takes operations that everyone knows and loves, abstracts them, and transforms them into fast and efficient methods for the computer to implement.
Sometimes these algorithms are completely baffling.
-I remember laughing for ten minutes after I heard that an fft(ffast fourier transform) convolutions could be used to calculate a simple integer multiplicationing the Schönhage–Strassen algorithm.
-I thought, "Why would you ever want to use an fft to do something to trivial? This has to be a joke!"
+I remember laughing for ten minutes after I heard that an FFT(Fast Fourier Transform) convolutions could be used to calculate a simple integer multiplicationing the Schönhage–Strassen algorithm.
+I thought, "Why would you ever want to use an FFT to do something to trivial? This has to be a joke!"
Oh boy was I wrong.
The Schönhage–Strassen algorithm was actually the most efficient method to multiply two numbers until around 2007 when it was dethroned by the Fürer's algorithm.
From 85e7dd4e94121f4a17944cd14738f6eeda48b24e Mon Sep 17 00:00:00 2001
From: Mukundan <30190448+Mukundan314@users.noreply.github.com>
Date: Wed, 8 Aug 2018 10:46:08 +0530
Subject: [PATCH 5/8] Update cooley_tukey.md
---
contents/cooley_tukey/cooley_tukey.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contents/cooley_tukey/cooley_tukey.md b/contents/cooley_tukey/cooley_tukey.md
index 4b12c1702..99f152922 100644
--- a/contents/cooley_tukey/cooley_tukey.md
+++ b/contents/cooley_tukey/cooley_tukey.md
@@ -129,7 +129,7 @@ In the end, the code looks like:
{% endmethod %}
As a side note, we are enforcing that the array must be a power of 2 for the operation to work.
-This is a limitation of the fact that we are using recursion and dividing the array into 2 every time; however, if your array is not a power of 2, you can simply pad the leftover space with 0's until your array is a power of 2.
+This is a limitation of the fact that we are using recursion and dividing the array in 2 every time; however, if your array is not a power of 2, you can simply pad the leftover space with 0's until your array is a power of 2.
The above method is a perfectly valid FFT; however, it is missing the pictorial heart and soul of the Cooley-Tukey algorithm: Butterfly Diagrams.
From 503baf11ed579bf8f0601ccc59b3a18bbf552810 Mon Sep 17 00:00:00 2001
From: Mukundan <30190448+Mukundan314@users.noreply.github.com>
Date: Wed, 8 Aug 2018 10:48:11 +0530
Subject: [PATCH 6/8] Update gaussian_elimination.md
---
contents/gaussian_elimination/gaussian_elimination.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contents/gaussian_elimination/gaussian_elimination.md b/contents/gaussian_elimination/gaussian_elimination.md
index cf57e08f8..7c146aaed 100644
--- a/contents/gaussian_elimination/gaussian_elimination.md
+++ b/contents/gaussian_elimination/gaussian_elimination.md
@@ -211,7 +211,7 @@ Here I should point out that Gaussian elimination makes sense from a purely anal
For small systems of equations, it's relatively straightforward to do this method by hand; however, for large systems, this \(of course\) become tedious and we will need to find an appropriate numerical solution.
For this reason, I have split this section into two parts. One will cover the analytical framework, and the other will cover an algorithm you can write in your favorite programming language.
-In the end, reducing large systems of equations boils down to a game you play on a seemingly random matrix where you have the following moves available:
+In the end, reducing large systems of equations boils down to a game you play on a seemingly random matrix with 3 possible moves. You can:
1. swap any two rows
2. multiply any row by a non-zero scale value
From eec60b5cea094628a4af9e38180b898e5a6821b7 Mon Sep 17 00:00:00 2001
From: Mukundan <30190448+Mukundan314@users.noreply.github.com>
Date: Wed, 8 Aug 2018 10:57:22 +0530
Subject: [PATCH 7/8] Update CONTRIBUTORS.md
---
CONTRIBUTORS.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index f188deacc..ae5e0babe 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -57,3 +57,5 @@ NIFR91
Michal Hanajik
Bendik Samseth
+
+mukundan314
From a4f466c52a3f5c536ab101ae2b7a754e8ef85119 Mon Sep 17 00:00:00 2001
From: mukundan314
Date: Sat, 15 Sep 2018 17:18:32 +0530
Subject: [PATCH 8/8] Update git_and_version_control.md
---
contents/git_and_version_control/git_and_version_control.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/contents/git_and_version_control/git_and_version_control.md b/contents/git_and_version_control/git_and_version_control.md
index dfc818b7f..323139ce1 100644
--- a/contents/git_and_version_control/git_and_version_control.md
+++ b/contents/git_and_version_control/git_and_version_control.md
@@ -139,7 +139,7 @@ git status
```
This will show that `CONTRIBUTORS.md` has been modified.
-If we want to save our changes, we need to add all the files with changes to them to a package called a `commit`.
+If we want to save our changes, we need to add all of the files with changes to them to a package called a `commit`.
To add the files, simply type:
```
@@ -214,7 +214,7 @@ To switch branches, use
git checkout branch
```
-And this will change all the files on your local directory to match the branch you have swapped to.
+And this will change all of the files on your local directory to match the branch you have swapped to.
Note that if you have local changes that will be overwritten when changing branches, git will note these changes and tell you to do something about them before switching to a new branch.
If you want to get rid of the changes, you could delete any files that are causing conflicts; however, this is barbaric and should be avoided in civilized society.
Another solution is to use a feature of git called the `stash`.