Git Revert dhidi ya Git Reset: Kutengua na Kurekebisha Mabadiliko katika Historia ya Git

Git Revert na Git Reset ni amri mbili muhimu katika Git kwa kutengua na kurekebisha mabadiliko katika commit historia ya hazina. Hapa kuna mwongozo wa jinsi ya kutumia Git Revert na Git Reset:

 

Git Revert

  • Git Revert hukuruhusu kuunda ahadi mpya ya kutendua( revert) mabadiliko yaliyofanywa hapo awali.

  • Kwa, tumia amri ifuatayo revert: commit

    git revert <commit_id>
    

    Badilisha <commit_id> na kitambulisho cha commit unayotaka kurejesha. Mpya commit itaundwa, na kutendua mabadiliko katika iliyochaguliwa commit.

  • Revert haibadilishi commit historia lakini huunda mpya commit kurudisha mabadiliko.

 

Git Reset

  • Git Reset hukuruhusu kurudi kwenye hali ya awali kwa kuhamisha HEAD tawi na la sasa kwa ahadi maalum.

  • Git Reset ina njia tatu tofauti: --soft, --mixed(default), and --hard.

  • Kwa reset tawi HEAD na la sasa kwa a commit, tumia amri ifuatayo:

    git reset --mode <commit_id>
    

    Badilisha <commit_id> na kitambulisho cha commit unayotaka kuweka upya.

  • Git Reset aina:

    • -soft: Husogeza tawi HEAD na la sasa hadi lililobainishwa commit, ikiweka mabadiliko ya awali commit katika eneo la jukwaa. Tumia amri git reset --soft <commit_id>.
    • --mixed: Hii ndiyo hali ya chaguo-msingi. Huhamisha HEAD tawi na la sasa kwa ahadi iliyobainishwa na huondoa mabadiliko ya awali commit kutoka kwa eneo la jukwaa. Tumia amri git reset --mixed <commit_id>.
    • --hard: Huhamisha HEAD tawi na la sasa hadi lililobainishwa commit na kutupa mabadiliko yote ya awali commit. Kuwa mwangalifu unapoitumia, kwani mabadiliko yoyote ambayo hayajatekelezwa yatapotea. Tumia amri git reset --hard <commit_id>.
    <commit_id>.
  • Git Reset hubadilisha commit historia na inaweza kusababisha upotezaji wa data, kwa hivyo itumie kwa tahadhari.

 

Git Revert na Git Reset ni zana zenye nguvu za kutengua na kurekebisha historia ya ahadi katika Git. Zitumie kwa uangalifu ili kuhakikisha uthabiti wa mradi na epuka upotezaji wa data.