<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Manish Raj's Blog]]></title><description><![CDATA[Manish Raj's Blog]]></description><link>https://manish-raj-blogs.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 22 Jun 2026 08:22:27 GMT</lastBuildDate><atom:link href="https://manish-raj-blogs.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Values, Types, and Operators in JavaScript]]></title><description><![CDATA[In the Computer world, Data is stored as a sequence of bits. Bits are basically either 0 or 1. Any data inside a computer is expressed in terms of bits. For example, the decimal number 13 will be expressed as 00001101 in bits inside the computer. Bit...]]></description><link>https://manish-raj-blogs.hashnode.dev/values-types-and-operators-in-javascript</link><guid isPermaLink="true">https://manish-raj-blogs.hashnode.dev/values-types-and-operators-in-javascript</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[js]]></category><dc:creator><![CDATA[Manish Raj]]></dc:creator><pubDate>Tue, 08 Dec 2020 10:13:02 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p>In the Computer world, Data is stored as a sequence of bits. Bits are basically either 0 or 1. Any data inside a computer is expressed in terms of bits. For example, the decimal number 13 will be expressed as 00001101 in bits inside the computer. Bits are any kind of two-valued things, usually described as zeros and ones. Inside the computer, they take forms such as a high or low electrical charge, a strong or weak signal, or a shiny or dull spot on the surface of a CD. Any piece of discrete information can be reduced to a sequence of zeros and ones and thus represented in bits.</p>
</blockquote>
<p><strong>Imagine a sea of bits—an ocean of them. A typical modern computer has more than 30 billion bits in its volatile data storage. Nonvolatile storage tends to have yet a few orders of magnitude more. </strong></p>
<h3 id="there-are-different-types-of-values-called-numbers-string-boolean-etc-lets-see-one-by-one-in-detail">There are different types of values called Numbers, String, Boolean, etc. Let’s see one by one in detail.</h3>
<ul>
<li>Numbers:</li>
</ul>
<blockquote>
<p>Values of number type are just numerical values. Javascript uses 64 bits to store a single number value. With 64 binary digits, we can represent 2 ^ 64 different numbers which are 18 quintillions, and it is so huge. Number values include negative numbers as well, so one bit is used to represent the sign of the number. In order to represent nonwhole numbers as well, some of the bits are used to store the decimal point.</p>
<p>A sample arithmetic operation in Javascript looks like this
         10 + 5 * 2</p>
<p>The symbols +, * are called operators. When operators appear without parenthesis just like the expression on the top, the arithmetic operation is performed on the basis of the order of precedence.</p>
<p>There are three special values in Javascript which are numbers but don’t behave like one. They are Infinity, -Infinity, NaN.</p>
</blockquote>
<ul>
<li>Arithmetic:</li>
</ul>
<blockquote>
<p>The main thing to do with numbers is arithmetic. Arithmetic operations such as addition or multiplication take two number values and produce a new number from them. Here is what they look like in JavaScript: 100 + 4 * 11</p>
<p>The + and * symbols are called operators. The first stands for addition and the second stand for multiplication. Putting an operator between two values will apply it to those values and produce a new value.</p>
</blockquote>
<ul>
<li>Strings:</li>
</ul>
<blockquote>
<p>The next basic data type is the string. Strings are used to represent text. They are written by enclosing their content in quotes.</p>
<ul>
<li>'Down on the sea'</li>
<li>"Lie on the ocean"</li>
<li>'Float on the ocean'</li>
</ul>
<p>You can use single quotes, double quotes, or backticks to mark strings, as
long as the quotes at the start and the end of the string match.</p>
</blockquote>
<ul>
<li>Unary operators:</li>
</ul>
<blockquote>
<p>Not all operators are symbols. Some are written as words. One example is the typeof operator, which produces a string value naming the type of the value you give it.</p>
<ul>
<li>console.log(typeof 4.5)</li>
<li>// → number</li>
<li>console.log(typeof "x")</li>
<li>// → string</li>
</ul>
<p>We will use console.log in example code to indicate that we want to see the result of evaluating something. More about that in the next chapter.
The other operators have shown all operated on two values, but typeof takes only one. Operators that use two values are called binary operators, while those that take one are called unary operators. The minus operator can be used both as a binary operator and as a unary operator.</p>
<ul>
<li>console.log(- (10 - 2))</li>
<li>// → -8</li>
</ul>
</blockquote>
<ul>
<li>Boolean values:</li>
</ul>
<blockquote>
<p>It is often useful to have a value that distinguishes between only two possibilities, like “yes” and “no” or “on” and “off”. For this purpose, JavaScript has a Boolean type, which has just two values, true and false, which are written as those words.
Comparison Here is one way to produce Boolean values:</p>
<ul>
<li>console.log(3 &gt; 2)</li>
<li>// → true</li>
<li>console.log(3 &lt; 2)</li>
<li>// → false</li>
</ul>
<p>The &gt; and &lt; signs are the traditional symbols for “is greater than” and “is
less than”, respectively. They are binary operators. Applying them results in a Boolean value that indicates whether they hold true in this case.
Strings can be compared in the same way.</p>
<ul>
<li>console.log("Aardvark" &lt; "Zoroaster")</li>
<li>// → true</li>
</ul>
</blockquote>
<ul>
<li>Empty values:</li>
</ul>
<blockquote>
<p>There are two special values, written null and undefined, that are used to
denote the absence of a meaningful value. They are themselves values, but they carry no information. Many operations in the language that don’t produce a meaningful value (you’ll see some later) yield undefined simply because they have to yield some
value.</p>
</blockquote>
<ul>
<li>Automatic type conversion:</li>
</ul>
<blockquote>
<p>In the Introduction, I mentioned that JavaScript goes out of its way to accept almost any program you give it, even programs that do odd things. This is nicely demonstrated by the following expressions:</p>
<ul>
<li>console.log(8 * null)</li>
<li>// → 0</li>
<li>console.log("5" - 1)</li>
<li>// → 4</li>
<li>console.log("5" + 1)</li>
<li>// → 51</li>
<li>console.log("five" * 2)</li>
<li>// → NaN</li>
<li>console.log(false == 0)</li>
<li>// → true</li>
</ul>
</blockquote>
<h3 id="summary">Summary:</h3>
<blockquote>
<p>We looked at four types of JavaScript values in this chapter: numbers, strings,Booleans, and undefined values. Such values are created by typing in their name (true, null) or value (13 , "abc"). You can combine and transform values with operators. We saw binary operators for arithmetic (+, -, *, /, and %), string concatenation (+), comparison (==, !=, ===, !==, &lt;, &gt;, &lt;=, &gt;=), and logic (&amp;&amp;, ||), as well as several unary operators (- to negate a number, ! to negate logically, and typeof to find a value’s type) and a ternary operator (?:) to pick one of two values based on a third value.</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Info About API]]></title><description><![CDATA[What is an API?

API stands for Application Programming Interface and allows your application to interact with an external service using a simple set of commands. APIs are another way companies can serve their tools and services.

Main types of Web A...]]></description><link>https://manish-raj-blogs.hashnode.dev/info-about-api</link><guid isPermaLink="true">https://manish-raj-blogs.hashnode.dev/info-about-api</guid><category><![CDATA[APIs]]></category><category><![CDATA[API basics ]]></category><dc:creator><![CDATA[Manish Raj]]></dc:creator><pubDate>Wed, 02 Dec 2020 20:28:20 GMT</pubDate><content:encoded><![CDATA[<h1 id="what-is-an-api">What is an API?</h1>
<blockquote>
<p>API stands for Application Programming Interface and allows your application to interact with an external service using a simple set of commands. APIs are another way companies can serve their tools and services.</p>
</blockquote>
<h2 id="main-types-of-web-apis">Main types of Web APIs:-</h2>
<ol>
<li><p>Open APIs</p>
<blockquote>
<p>Also known as Public API, there are no restrictions to access these types of APIs because they are publicly available.</p>
</blockquote>
</li>
<li><p>Partner APIs</p>
<blockquote>
<p>A developer needs specific rights or licenses in order to access this type of API because they are not available to the public.</p>
</blockquote>
</li>
<li><p>Internal APIs</p>
<blockquote>
<p>Also known as Private APIs, only internal systems expose this type of API. These are usually designed for internal use within a company. The company uses this type of API among the different internal teams to be able to improve its products and services.</p>
</blockquote>
</li>
<li><p>Composite APIs</p>
<blockquote>
<p>This type of API combines different data and service APIs. It is a sequence of tasks that run synchronously as a result of the execution, and not at the request of a task. Its main uses are to speed up the process of execution and improve the performance of the listeners in the web interfaces.</p>
</blockquote>
</li>
</ol>
<h3 id="apart-from-the-main-web-apis-there-are-also-web-service-apis">Apart from the main web APIs, there are also web service APIs:</h3>
<ol>
<li>SOAP</li>
<li>XML-RPC</li>
<li>JSON-RPC</li>
<li>REST</li>
</ol>
<p>A web service is a system or software that uses an address, i.e., URL on the World Wide Web, to provide access to its services.</p>
<p>The following are the most common types of web service APIs:</p>
<ol>
<li>SOAP (Simple Object Access Protocol):<blockquote>
<p>This is a protocol that uses XML as a format to transfer data. Its main function is to define the structure of the messages and methods of communication. It also uses WSDL, or Web Services Definition Language, in a machine-readable document to publish a definition of its interface.</p>
</blockquote>
</li>
<li>XML-RPC:<blockquote>
<p>This is a protocol that uses a specific XML format to transfer data compared to SOAP that uses a proprietary XML format. It is also older than SOAP. XML-RPC uses minimum bandwidth and is much simpler than SOAP.</p>
</blockquote>
</li>
<li>JSON-RPC: <blockquote>
<p>This protocol is similar to XML-RPC but instead of using XML format to transfer data it uses JSON. </p>
</blockquote>
</li>
<li>REST (Representational State Transfer):<blockquote>
<p>REST is not a protocol like the other web services, instead, it is a set of architectural principles. The REST service needs to have certain characteristics, including simple interfaces, which are resources identified easily within the request and manipulation of resources using the interface.</p>
</blockquote>
</li>
</ol>
<h2 id="the-importance-of-apis">The Importance of APIs:-</h2>
<blockquote>
<p>The importance of APIs from a technical standpoint, they allow the capabilities of one computer program to be used by another. They are a means by which two different programs are able to communicate. APIs enable companies to grow their businesses more quickly than ever before, and represent an answer for the organizations that are currently spending more than $590 billion per year integrating disparate systems. Like the Web, which opened up the Internet’s potential, APIs are driving a new wave of innovation centered on sharing services. Organizations in all industries are looking to learn more about APIs and their potential to transform business processes.</p>
</blockquote>
<h2 id="most-popular-api-integrations">Most Popular API Integrations:-</h2>
<blockquote>
<p>Out of all 10,000+ APIs on RapidAPI’s API marketplace, these are the APIs that over 1,000,000 developers use the most. For each API, click the link to explore the API documentation, or click “Learn More” to read more details about the API.</p>
</blockquote>
<ol>
<li>Skyscanner Flight Search </li>
<li>Open Weather Map</li>
<li>API-FOOTBALL </li>
<li>The Cocktail DB </li>
<li>REST Countries v1 </li>
<li>Yahoo Finance</li>
<li>Love Calculator </li>
<li>URL Shortener Service</li>
<li>NasaAPI</li>
<li>Numbers </li>
<li>musiXmatch </li>
<li>SYSTRAN – Translation and NLP</li>
<li>Chuck Norris</li>
<li>Hearthstone</li>
<li>Currency Exchange</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Writing good commit messages.]]></title><description><![CDATA[Before we start looking at the specific use cases, here’s a quick note about commit messages. Having a good guideline for creating commits and sticking to it makes working with Git and collaborating with others a lot easier.

Good commit messages ser...]]></description><link>https://manish-raj-blogs.hashnode.dev/writing-good-commit-messages</link><guid isPermaLink="true">https://manish-raj-blogs.hashnode.dev/writing-good-commit-messages</guid><category><![CDATA[Git]]></category><category><![CDATA[GitHub]]></category><dc:creator><![CDATA[Manish Raj]]></dc:creator><pubDate>Thu, 26 Nov 2020 22:06:27 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p>Before we start looking at the specific use cases, here’s a quick note about commit messages. Having a good guideline for creating commits and sticking to it makes working with Git and collaborating with others a lot easier.</p>
</blockquote>
<h3 id="good-commit-messages-serve-at-least-three-important-purposes">Good commit messages serve at least three important purposes:</h3>
<ul>
<li><p>To speed up the reviewing process.</p>
</li>
<li><p>To help us write a good release note.</p>
</li>
<li><p>To help the future maintainers of Erlang/OTP (it could be you!), say five years into the future, to find out why a particular change was made to the code or why a specific feature was added.</p>
</li>
</ul>
<h3 id="dos">DO's</h3>
<ul>
<li>Write the summary line and description of what you have done in the imperative mood, that is as if you were commanding someone. Start the line with "Fix", "Add", "Change" instead of "Fixed", "Added", "Changed".</li>
<li>Always leave the second line blank.</li>
<li>Line break the commit message (to make the commit message readable without having to scroll horizontally in gitk).</li>
</ul>
<h3 id="donts">DON'Ts</h3>
<ul>
<li>Don't end the summary line with a period - it's a title and titles don't end with a period.</li>
</ul>
<h3 id="tips">Tips</h3>
<ul>
<li>If it seems difficult to summarize what your commit does, it may be because it includes several logical changes or bug fixes, and are better split up into several commits using git add -p.</li>
</ul>
<h3 id="explanation-of-a-few-git-messages-are-as-follows">Explanation of a few Git Messages are as follows:-</h3>
<ul>
<li>feat - a new feature</li>
<li>fix - a bug fix</li>
<li>docs - changes in documentation</li>
<li>style - everything related to styling</li>
<li>refactor - code changes that neither fixes a bug or adds a feature</li>
<li>test - everything related to testing</li>
<li>chore - updating build tasks, package manager configs, etc</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Some lesser-known git commands]]></title><description><![CDATA[Git is such a complex tool that I often feel as if I'm barely using 10% of its complete functionality. The various commands range from the absolutely essential (commit, push, pull) to the more exotic to the downright obscure or scary. However, this l...]]></description><link>https://manish-raj-blogs.hashnode.dev/some-lesser-known-git-commands</link><guid isPermaLink="true">https://manish-raj-blogs.hashnode.dev/some-lesser-known-git-commands</guid><category><![CDATA[Git]]></category><category><![CDATA[GitHub]]></category><dc:creator><![CDATA[Manish Raj]]></dc:creator><pubDate>Thu, 26 Nov 2020 20:39:25 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p>Git is such a complex tool that I often feel as if I'm barely using 10% of its complete functionality. The various commands range from the absolutely essential (commit, push, pull) to the more exotic to the downright obscure or scary. However, this list compiles 6 commands that you may not know about that have seriously improved the way in which I use git.</p>
</blockquote>
<ul>
<li><h3 id="git-log-p-lesspathgreater">git log -p </h3>
<blockquote>
<p>git log is git's way of showing you the history of your codebase, and adding a path to the command will limit the log to the changes in that one file. Finally, the -p flag includes the diff on the file at each commit, so you can see exactly how the file has changed at each point in the history of the code.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git <span class="hljs-keyword">log</span> -p README.md
</code></pre><ul>
<li><h3 id="git-checkout-lesscommitgreater">git checkout </h3>
<blockquote>
<p>If you want to see the state of your code at a particular point in history, git makes this trivial. Just run this command with a commit hash as the argument (you can use git log to find the hash you want to revert to).</p>
</blockquote>
</li>
</ul>
<pre><code>$ git checkout 08c6fa
</code></pre><ul>
<li><h3 id="git-checkout-lesstree-ishgreater-lesspathgreater">git checkout  -- </h3>
<blockquote>
<p>This is useful in the case when you need to restore a deleted file, or restore a file to a previous state. Here,  refers to a commit hash, tag or branch, and  is the path of the file relative to the top directory of the project.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git checkout <span class="hljs-number">05</span>c5fa <span class="hljs-comment">-- config/routers.rb</span>
</code></pre><ul>
<li><h3 id="git-stash">git stash</h3>
<blockquote>
<p>This is an extremely useful command that isn't as well known as it should be. If you have uncommitted changes in your tree that you want to temporarily undo, then this command allows you to stash them for later. This is particularly useful if you want to check the state of your code before your changes, or if you want to merge in someone else code but aren't yet ready to commit your code as it is.</p>
</blockquote>
</li>
</ul>
<pre><code>$ <span class="hljs-keyword">echo</span> <span class="hljs-string">"This is a temporary"</span> &gt;&gt; README
</code></pre><ul>
<li><h3 id="git-cherry-pick-lesscommitgreater">git cherry-pick </h3>
<blockquote>
<p>This command allows you to apply a single commit to your working tree. For example, if there's a commit in another branch that you want to apply but the branch isn't ready to fully merge, you can use this command to grab that commit and drop it into your current branch.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git cherry-pick <span class="hljs-number">9</span>f4afc
</code></pre><ul>
<li><h3 id="git-annotate-lessfilegreater">git annotate </h3>
<blockquote>
<p>This handy command shows each line of a file next to the information about which commit last changed that line, when it changed, and who changed it.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git annotate Readme
</code></pre>]]></content:encoded></item><item><title><![CDATA[Common Git Commands]]></title><description><![CDATA[In this article, we are going to go over the top Common Git Commands. Some of these you may have used, some may be new to you, and some you might think there’s no way this is going to work. But you'll never know until you try them out!

The Commands ...]]></description><link>https://manish-raj-blogs.hashnode.dev/common-git-commands</link><guid isPermaLink="true">https://manish-raj-blogs.hashnode.dev/common-git-commands</guid><category><![CDATA[Git]]></category><dc:creator><![CDATA[Manish Raj]]></dc:creator><pubDate>Tue, 24 Nov 2020 09:44:14 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p>In this article, we are going to go over the top Common Git Commands. Some of these you may have used, some may be new to you, and some you might think there’s no way this is going to work. But you'll never know until you try them out!</p>
</blockquote>
<h2 id="the-commands-are-as-follows">The Commands are as follows :-</h2>
<ul>
<li><strong>git init</strong><blockquote>
<p>This command turns a directory into an empty Git repository. This is the first step in creating a repository. After running git init, adding and committing files/directories is possible.</p>
</blockquote>
</li>
</ul>
<pre><code><span class="hljs-comment"># change directory to codebase</span>
$ cd /file/path/to/code
<span class="hljs-comment"># make directory a git repository</span>
$ git init
</code></pre><ul>
<li><strong>git add</strong><blockquote>
<p>Adds files in the to the staging area for Git. Before a file is available to commit to a repository, the file needs to be added to the Git index (staging area). There are a few different ways to use git add, by adding entire directories, specific files, or all unstaged files.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git <span class="hljs-keyword">add</span> &lt;file <span class="hljs-keyword">or</span> directory <span class="hljs-type">name</span>&gt;
</code></pre><ul>
<li><strong>git commit</strong><blockquote>
<p>Record the changes made to the files to a local repository. For easy reference, each commit has a unique ID. It’s best practice to include a message with each commit explaining the changes made in a commit. Adding a commit message helps to find a particular change or understanding the changes.</p>
</blockquote>
</li>
</ul>
<pre><code># Adding a <span class="hljs-keyword">commit</span> <span class="hljs-keyword">with</span> message
$ git <span class="hljs-keyword">commit</span> -m "Commit message in quotes"
</code></pre><ul>
<li><strong>git status</strong><blockquote>
<p>This command returns the current state of the repository. git status will return the current working branch. If a file is in the staging area, but not committed, it shows with git status. Or, if there are no changes it’ll return nothing to commit, working directory clean.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git status
</code></pre><ul>
<li><strong>git config</strong><blockquote>
<p>With Git, there are many configurations and settings possible. git config is how to assign these settings. Two important settings are user user.name and user.email. These values set what email address and name commits will be from on a local computer. With git config, a --global flag is used to write the settings to all repositories on a computer. Without a --global flag settings will only apply to the current repository that you are currently in.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git config <span class="hljs-tag">&lt;<span class="hljs-name">setting</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">command</span>&gt;</span>
</code></pre><ul>
<li><strong>git branch</strong><blockquote>
<p>To determine what branch the local repository is on, add a new branch, or delete a branch.</p>
</blockquote>
</li>
</ul>
<pre><code><span class="hljs-comment"># Create a new branch</span>
$ git branch &lt;branch_name&gt;
<span class="hljs-comment"># List all remote or local branches</span>
$ git branch -a
<span class="hljs-comment"># Delete a branch</span>
$ git branch -d &lt;branch_name&gt;
</code></pre><ul>
<li><strong>git checkout</strong><blockquote>
<p>To start working in a different branch, use git checkout to switch branches.</p>
</blockquote>
</li>
</ul>
<pre><code><span class="hljs-comment"># Checkout an existing branch</span>
$ git checkout &lt;branch_name&gt;
<span class="hljs-comment"># Checkout and create a new branch with that name</span>
$ git checkout -b &lt;new_branch&gt;
</code></pre><ul>
<li><strong>git merge</strong><blockquote>
<p>Integrate branches together. git merge combines the changes from one branch to another branch. For example, merge the changes made in a staging branch into the stable branch.</p>
</blockquote>
</li>
</ul>
<pre><code># Merge changes <span class="hljs-keyword">into</span> <span class="hljs-keyword">current</span> branch
$ git merge &lt;branch_name&gt;
</code></pre><ul>
<li><strong>git remote</strong><blockquote>
<p>To connect a local repository with a remote repository. A remote repository can have a name set to avoid having to remember the URL of the repository.</p>
</blockquote>
</li>
</ul>
<pre><code><span class="hljs-comment"># Add remote repository</span>
$ git remote &lt;command&gt; &lt;remote_name&gt; &lt;remote_URL&gt;
<span class="hljs-comment"># List named remote repositories</span>
$ git remote -v
</code></pre><ul>
<li><strong>git clone</strong><blockquote>
<p>To create a local working copy of an existing remote repository, use git clone to copy and download the repository to a computer. Cloning is the equivalent of git init when working with a remote repository. Git will create a directory locally with all files and repository history.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git clone <span class="hljs-tag">&lt;<span class="hljs-name">remote_URL</span>&gt;</span>
</code></pre><ul>
<li><strong>git pull</strong><blockquote>
<p>To get the latest version of a repository run git pull. This pulls the changes from the remote repository to the local computer.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git pull <span class="hljs-tag">&lt;<span class="hljs-name">branch_name</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">remote_URL</span>/<span class="hljs-attr">remote_name</span>&gt;</span>
</code></pre><ul>
<li><strong>git push</strong><blockquote>
<p>Sends local commits to the remote repository. git push requires two parameters: the remote repository and the branch that the push is for.</p>
</blockquote>
</li>
</ul>
<pre><code>$ git push &lt;remote_URL/remote_name&gt; &lt;branch&gt;
# Push <span class="hljs-keyword">all</span> <span class="hljs-keyword">local</span> branches <span class="hljs-keyword">to</span> remote repository
$ git push —<span class="hljs-keyword">all</span>
</code></pre><ul>
<li><strong>git stash</strong><blockquote>
<p>To save changes made when they’re not in a state to commit them to a repository. This will store the work and give a clean working directory. For instance, when working on a new feature that’s not complete, but an urgent bug needs attention.</p>
</blockquote>
</li>
</ul>
<pre><code># Store <span class="hljs-keyword">current</span> <span class="hljs-keyword">work</span> <span class="hljs-keyword">with</span> untracked files
$ git stash -u
# Bring stashed <span class="hljs-keyword">work</span> back <span class="hljs-keyword">to</span> the working directory
$ git stash pop
</code></pre><ul>
<li><strong>git log</strong><blockquote>
<p>To show the chronological commit history for a repository. This helps give context and history for a repository. git log is available immediately on a recently cloned repository to see history.</p>
</blockquote>
</li>
</ul>
<pre><code># <span class="hljs-keyword">Show</span> entire git <span class="hljs-keyword">log</span>
$ git <span class="hljs-keyword">log</span>
# <span class="hljs-keyword">Show</span> git <span class="hljs-keyword">log</span> <span class="hljs-keyword">with</span> <span class="hljs-type">date</span> pameters
$ git <span class="hljs-keyword">log</span> <span class="hljs-comment">--&lt;after/before/since/until&gt;=&lt;date&gt;</span>
# <span class="hljs-keyword">Show</span> git <span class="hljs-keyword">log</span> based <span class="hljs-keyword">on</span> <span class="hljs-keyword">commit</span> author
$ git <span class="hljs-keyword">log</span> <span class="hljs-comment">--&lt;author&gt;="Author Name"</span>
</code></pre>]]></content:encoded></item><item><title><![CDATA[Alternatives to GitHub]]></title><description><![CDATA[What is GitHub?

GitHub is an important tool for most developers since it enables them to use the benefits of code hosting to access a project centrally. Users can contribute to a project no matter where they are in the world and save their changes i...]]></description><link>https://manish-raj-blogs.hashnode.dev/alternative-to-github</link><guid isPermaLink="true">https://manish-raj-blogs.hashnode.dev/alternative-to-github</guid><category><![CDATA[GitHub]]></category><dc:creator><![CDATA[Manish Raj]]></dc:creator><pubDate>Tue, 24 Nov 2020 08:04:06 GMT</pubDate><content:encoded><![CDATA[<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1606207177241/OCsi7Hpe_.png" alt="git.png" /></p>
<h1 id="what-is-github"><strong>What is GitHub?</strong></h1>
<blockquote>
<p>GitHub is an important tool for most developers since it enables them to use the benefits of code hosting to access a project centrally. Users can contribute to a project no matter where they are in the world and save their changes independently of one another. In contrast to other service providers that manage open source software, the project doesn’t concentrate on collecting source codes, but the possibility of using individual repositories (directories that are managed with Git). GitHub users can either use Git or Subversion as a VCS (Version Control System) to manage, maintain, and deploy their software projects.</p>
</blockquote>
<h2 id="reasons-for-using-github-alternatives"><strong>Reasons for using GitHub alternatives:-</strong></h2>
<ol>
<li>Steep learning curve: Many commands with many options, some commands are non-intuitive and need a level of understanding the internals of git, commands and arguments are inconsistent to some degree</li>
<li>Binary files are a big no: If your project has non-text files that are updated frequently (images for websites or MS Office documents), then git becomes bloated and slow. (I believe it still does better than most systems)</li>
<li>Sometimes there are complications between the client and the employer, for example, when a private server is hosting the generated code.</li>
<li>Another reason for needing an alternative to GitHub is when you wish to use another VCS that isn’t supported by GitHub.</li>
</ol>
<h3 id="there-are-some-good-github-alternatives-five-of-which-are-presented-below">There are some good GitHub alternatives, five of which are presented below:-</h3>
<ol>
<li><p><strong> GitLab</strong>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1606206912674/B2vg3pET5.png" alt="gitlab.png" /></p>
<blockquote>
<p>GitLab offers many useful features in its DVCS such as an integrated project wiki and a project website. GitLab’s continuous integration capabilities test and deliver your code automatically, which saves time in the test phase. With GitLab, you get easy access to all the important aspects of your project through a code viewer, pull requests, and practical conflict resolution. The application was mainly written in Ruby.</p>
</blockquote>
</li>
<li><p><strong>SourceForge</strong>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1606207064915/ycXxv85l2.png" alt="SourceForge.png" /></p>
<blockquote>
<p>SourceForge actually existed before GitHub and other open source alternatives and used to be the first choice when it came to open source solutions. The company had some problems with malware in 2015, but has been back on track since January 2016. SourceForge now offers multi-factor authorization, which echoes how conscientious the software is when it comes to security. Other features include issue tracking and a built-in code directory.</p>
</blockquote>
</li>
<li><p><strong>Cloud Source Repositories</strong>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1606207260714/6X1ad2wIx.png" alt="Cloud Source Repositories.png" /></p>
<blockquote>
<p>After Google Code flopped, the service merged with Google Cloud platform’s version control. Using Cloud Source Repositories, which is in the beta phase, other repositories can be connected via GitHub or Bitbucket as required. You can also use Google’s own repositories where your files are saved as part of the complete Google infrastructure so you can be sure your code and applications are secure. The best advantage of Cloud Source Repositories: you can search for code directly through the browser and also track bugs through Cloud Diagnostics, while your code runs in the background.</p>
</blockquote>
</li>
<li><p><strong>GitKraken</strong>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1606207324007/tv3QPRPYS1.png" alt="GitKraken.png" /></p>
<blockquote>
<p>GitKraken puts a lot of emphasis on saving time which benefits the user while testing the code. The system is known for its sizeable interface, its focus on speed, and its simple Git operation. With a practical undo button, any errors can be revised immediately, which simplifies the workload. The free version is available to companies with fewer than 20 employees and non-profit organizations. The pro version offers additional useful features, such as profile support so that various projects can be separated from each other.</p>
</blockquote>
</li>
<li><p><strong>Apache Allura</strong>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1606207424516/KPP9lVnrl.png" alt="Apache Allura.png" /></p>
<blockquote>
<p>Allura is an open source software from Apache and is used for managing source code repositories, bug reports, discussions, wiki pages, blogs, and other online content. When it comes to issue tracking in Allura, you can use markdown formatting and file attachments as well as issue tickets with so-called milestones. An advanced search syntax is also available, which you can use to store frequent search queries. However, code verification isn’t possible with this system. The platform was developed with Python.</p>
</blockquote>
</li>
</ol>
]]></content:encoded></item></channel></rss>