2014-06-24 33 views
7

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

20

È 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: enter image description here

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.phpNewFeatures.php: enter image description here

Ciò apre l'indice Editor. Si vede tre sezioni con il codice: deposito (HEAD), Index, lavoro Albero: enter image description here

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: enter image description here

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: enter image description here

Nell'ultimo passaggio, stiamo per eseguire il commit della nuova funzione. Assicurarsi di selezionare Modifiche apportate alla stanzetta nella finestra di commit!enter image description here

Wow, abbiamo finito ora!

+2

Cool Spiegazione con Gif animate! – deeshank

+2

Abbastanza probabilmente la risposta più chiara che abbia mai visto su SO. –