<p>Il n’est pas nécessaire de le faire en deux commits, vous pouvez ajouter le fichier et le marquer comme exécutable en un seul commit :</p>
<pre><code class="lang-auto">C:\Temp\TestRepo>touch foo.sh
C:\Temp\TestRepo>git add foo.sh
C:\Temp\TestRepo>git ls-files --stage
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 foo.sh
</code></pre>
<p>Comme vous le notez, après l’ajout, le mode est 0644 (c’est-à-dire non exécutable). Cependant, nous pouvons le marquer comme exécutable avant de faire le commit :</p>
<pre><code class="lang-auto">C:\Temp\TestRepo>git update-index --chmod=+x foo.sh
C:\Temp\TestRepo>git ls-files --stage
100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 foo.sh
</code></pre>
<p>Et maintenant le fichier est en mode 0755 (exécutable).</p>
<pre><code class="lang-auto">C:\Temp\TestRepo>git commit -m"Executable!"
[master (root-commit) 1f7a57a] Executable!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100755 foo.sh
</code></pre>
<p>Et maintenant nous avons un seul commit avec un seul fichier exécutable.</p>