Sto usando SmartGit/Hg. Ho modificato alcuni file lavorando su due nuove funzionalità separate. Ora che ho finito di lavorare su Caratteristica A, voglio impegnare il mio lavoro, ma non posso semplicemente trasferire tutti i miei file modificati, in quanto contengono modifiche di Caratteristica B, che non voglio commettere solo ora.Come faccio a commettere solo linee specifiche usando SmartGit/Hg
risposta
È possibile ottenere ciò utilizzando il comando stage. Prima di tutto, stage tutti i file contenenti le modifiche da impegnare. In questo esempio, tutti i file ad eccezione di quello chiamato DoNotCommit.php
contengono almeno una linea che vogliamo commettere:
Quindi, abbiamo bisogno di aprire la Indice Editor per tutti i file che contengono le linee di Caratteristica AeFunzione B. In questo esempio, abbiamo bisogno di controllare e Main.php
NewFeatures.php
:
Ciò apre l'indice Editor. Si vede tre sezioni con il codice: deposito (HEAD), Index, lavoro Albero:
Per noi, solo la deposito (HEAD) e la scheda Indice sono importanti. La scheda Repository (HEAD) mostra il contenuto già impegnato del file. La scheda Indice mostra le modifiche che stiamo per eseguire. Diciamo che vogliamo solo a commettere il primo blocco di codice, con la funzione myNewCompletedFeature
:
Come vedete, abbiamo rimuovere tutto il codice non vogliamo commettere dalla scheda indice. Ciò fa non rimuovere il codice dall'albero di lavoro , che significa che non si perdono le modifiche. Ora facciamo lo stesso con il nostro nuovo file NewFeatures.php
e lo salviamo di nuovo:
Nell'ultimo passaggio, stiamo per eseguire il commit della nuova funzione. Assicurarsi di selezionare Modifiche apportate alla stanzetta nella finestra di commit!
Wow, abbiamo finito ora!
Cool Spiegazione con Gif animate! – deeshank
Abbastanza probabilmente la risposta più chiara che abbia mai visto su SO. –