Come posso creare un nuovo commit
e creare un nuovo messaggio se non vengono apportate modifiche ai file?Come non eseguire alcuna modifica e nuovo messaggio?
Non è possibile poiché il codice di commit (SHA?) Sarà lo stesso?
Come posso creare un nuovo commit
e creare un nuovo messaggio se non vengono apportate modifiche ai file?Come non eseguire alcuna modifica e nuovo messaggio?
Non è possibile poiché il codice di commit (SHA?) Sarà lo stesso?
C'è raramente una buona ragione per farlo, ma il parametro è --allow-empty
per i commit vuoti, a differenza di --allow-empty-message
per i messaggi vuoti. Puoi anche leggere di più digitando git help commit
o visitando the online documentation.
Mentre l'oggetto tree (che ha un hash proprio) sarà identico, il commit avrà in realtà un hash diverso, perché presumibilmente avrà un timestamp e un messaggio diversi, e avrà sicuramente un commit padre diverso. Tutti e tre questi fattori sono integrati nell'algoritmo hash dell'oggetto git
.
Ci sono alcuni motivi si potrebbe desiderare un vuoto commit (che incorpora alcune delle osservazioni):
git
senza generare modifiche arbitrarie (tramite Vaelus).gitolite
(via Tatsh).Altre strategie per aggiungere metadati a un albero di impegnarsi includono:
git notes
per associare una nota mutevole a un commit immutabile esistente.Ho iniziato a seguire il flusso git [modello di ramo] (http://nvie.com/posts/a-successful-git-branching-model/). Quando si crea un ramo 'dev' di' master' e quindi un ramo 'feat' immediatamente da' dev', il ramo 'feat' sembra provenire dal ramo' master' in quanto non ci sono commit di distinzione su 'dev' ramo da cui proviene il ramo 'feat'. Un commit vuoto quando crei per la prima volta il ramo 'dev' aiuta a stabilire il ramo' dev' in quanto è un ramo a durata indefinita indipendente da 'master'. Generalmente è utile quando si usano i rami come livelli e si creano due livelli da un singolo commit –
Un altro motivo: se si omette qualcosa di importante dal messaggio di commit prima di premere, non è possibile eseguire 'commit --amend' se il telecomando non lo fa consentire la spinta della forza. In questo modo puoi consentire agli sviluppatori di vedere un messaggio importante che accompagna il commit precedente. –
Voglio farlo perché ho premuto un commit, ma ho dimenticato di menzionare qualcosa nel messaggio di commit. I nostri messaggi di commit sono integrati con il monitoraggio dei problemi e il software di integrazione continua e il contenuto del messaggio di commit influisce su tali applicazioni. C'è un modo migliore? Questa sembra la soluzione migliore nel mio caso. L'unica cosa che posso immaginare sarebbe in qualche modo riuscire a ripristinare il commit precedente. – sytech
Se ho capito bene, vuoi fare un commit vuoto. In tal caso è necessario:
git commit --allow-empty
Forse come un più valida alternativa, è possibile creare un tag annotated (un nome di commit con un messaggio). Vedere l'opzione git tag -a
.
Se si utilizza un sistema come gitversion È consigliabile eseguire questo tipo di commit. Potresti avere un commit che è specifico per il bumping della versione principale usando un semiver +: commento principale.
vuoto di commit con un messaggio
git commit --allow-empty -m "Empty test commit"
vuoto di commit con un messaggio vuoto
git commit --allow-empty --allow-empty-message
Altro per le note che per il codice stesso. –
Invece di fare quello che stai chiedendo, usa invece 'git notes'. – wjl
@iight Se non hai spinto il tuo codice ovunque, considera anche 'git commit --amend'. Questo ti riporterà alla schermata di commit in cui puoi modificare il tuo messaggio e aggiungere file extra al commit se li hai messi in scena. Tieni presente che, come un rebase, ciò farà sì che il commit originale sia obsoleto e potrebbe causare un brutto mal di testa per chiunque stia basando il codice sul vecchio commit. –