2010-04-04 6 views

Antwort

54

Nicht jeder Befehl würde natürlich direkt einen Trockenlauf unterstützen.

  • git merge hat its own option (git merge --no-commit --no-ff)
  • aber git pull does not really need it ('git fetch origin', dann eine 'git log master..origin/master', bevor ein git merge origin/master)
    (aber git push hat einen Trockenlauf Option)

Wie J.C. Hamano summarizes:

Es gibt Dinge, die nicht in Git implementiert sind, weil sie nicht Sinn machen, und es gibt Dinge, die nicht in Git implementiert sind, weil niemand hatte es juckt für zu kratzen.
Um es anders auszudrücken, neigen wir dazu, nur Dinge zu implementieren, die es gibt tatsächliche, nachgewiesene Bedürfnisse für die reale Welt und nur dann, wenn die Addition als ein kohärenter Teil des Systems Sinn macht.


iboisver Kommentare:

Eine andere Sache bewusst ist, zu sein, wie git add Befehle und git rm erlauben die -n Befehlszeilenoption Trockenlauf, während in git commit angeben, die -n Option bedeutet etwas völlig anderes.
So sicher sein, die man-Seite

git commit -n zu überprüfen:

-n 
--no-verify 

Diese Option umgeht die pre-commit und Commit-msg Haken. Siehe auch githooks(5).

+2

Eine andere Sache, auf die man achten sollte, ist, dass Befehle wie 'git-add' und' git-rm' die Befehlszeilenoption _-n_ zur Angabe von "dry run" zulassen, während in 'git-commit' die Option _-n_ bedeutet etwas ganz anderes. Überprüfen Sie also die Manpage. – iboisver

+1

@iboisver interessantes Feedback, danke. Ich habe Ihren Kommentar in die Antwort für mehr Sichtbarkeit aufgenommen. – VonC

8

Während es nicht immer einen --dry-run Flag für jeden Kommentar gibt, gibt es normalerweise Äquivalente. Zum Beispiel zeigt this previous question was zu tun ist für git merge.

+0

gibt es keine für "Rebase", für ein Beispiel. – gcb

Verwandte Themen