Difference between git push origin development and git push origin HEAD:development
<p>after some weeks using git as a machine, now I'm on my way to figure out how GIT really works. Than I started with a simple thing:</p>

<pre><code>git checkout -b test origin/development`   //Creating new local branch from development

Create new text file called test.txt

git add . //Set files that will be committed
git commit -m "this is a test" // Committing
</code></pre>

<p>And then comes my doubt:</p>

<p>When I try to push doing:</p>

<pre><code>git push origin development
</code></pre>

<p>The log says: Everything is up to date</p>

<p>If I try to push doing:</p>

<pre><code>git push origin HEAD:development
</code></pre>

<p>It works as it should. </p>

<p>Doing my research I found that HEAD means the name of the current branch. So, if it is right, it doesn't make any sense to me.</p>

<p>What is the difference between </p>

<pre><code>git push origin development
</code></pre>

<p>and</p>

<pre><code>git push origin HEAD:development
</code></pre>