git log - git stash- git rebase - git filter-repo

ហេតុអ្វីបានជា git log នៅតែបង្ហាញអាថ៌កំបាំងរបស់អ្នក៖ Git Commit ប្រវត្តិសាស្ត្រមិនដែលភ្លេចឡើយ

​មាតិកា

ប្រកាសដែលត្រូវតែអាន

ប្រកាសថ្មីៗបំផុតដែលគួរឱ្យចាប់អារម្មណ៍

ហេតុអ្វីបានជា git log បង្ហាញអាថ៌កំបាំងសូម្បីតែបន្ទាប់ពីពួកវាត្រូវបាន "លុបចោល"

ការលុបបន្ទាត់ចេញពីឯកសារ និង commitការផ្លាស់ប្តូរនេះពិតជាមិនលុបទិន្នន័យរសើបចេញពីឃ្លាំងរបស់អ្នកទេ។ ប្រសិនបើអាថ៌កំបាំងនោះ កូនសោ API លិខិតសម្គាល់ ឬថូខឹន ធ្លាប់មាន committed វាស្ថិតនៅក្នុងប្រវត្តិ Git របស់អ្នក។ អ្នកណាដែលកំពុងដំណើរការ git log-p, git បង្ហាញឬត្រួតពិនិត្យភាពខុសគ្នាពីអតីតកាល commits នៅតែអាចទាញយកវាបាន។

ទោះបីជាអ្នកសរសេរជាន់លើឯកសារ ឬជំនួសតម្លៃក៏ដោយ កំណត់ហេតុ git រក្សា​ពូជពង្ស​ពេញលេញ​នៃ​ការ​ផ្លាស់ប្ដូរ​នីមួយៗ។ នេះ​គឺ​តាម​ការ​រចនា។ គំរូ​ទាំងមូល​របស់ Git គឺ​ផ្អែក​លើ​ភាព​មិន​អាច​ផ្លាស់ប្ដូរ​បាន commit ប្រវត្តិសាស្ត្រ និងច្បាប់ចម្លងដែលបានចែកចាយ។ ដូច្នេះ លុះត្រាតែអ្នកសរសេរប្រវត្តិសាស្ត្រឡើងវិញយ៉ាងច្បាស់លាស់ អាថ៌កំបាំងរបស់អ្នកនៅតែមាននៅទីនោះ។ នេះជាករណីជាក់ស្តែងមួយ៖

⚠️ ឧទាហរណ៍អប់រំ កុំដំណើរការក្នុងផលិតកម្ម

យឺតពេលហើយ។ កំណត់ហេតុ git នៅតែបង្ហាញគន្លឹះនោះនៅក្នុងដំបូង commit.

ការយល់ច្រឡំជុំវិញ git stash និង git rebase

អ្នកអភិវឌ្ឍន៍ជាច្រើនសន្មតថា កន្លែងរក្សាទុក git ជួយលាក់ ឬសម្អាតអាថ៌កំបាំង។ មិនពិតទេ។ កន្លែងរក្សាទុក git មានតែធ្នើរ ថតឯកសារការងារ ផ្លាស់ប្តូរជាបណ្ដោះអាសន្ន; វាមិនដែលប៉ះ commit ប្រវត្តិសាស្ត្រ។ ប្រសិនបើអាថ៌កំបាំងមួយធ្លាប់មាន committed ការលាក់ការផ្លាស់ប្តូរនៅពេលក្រោយមិនជួយសម្អាតវាទេ។

អំពី​អ្វី ការ​បង្កើត​មូលដ្ឋាន​ឡើងវិញ​របស់ gitខណៈពេលដែលវាអាចសរសេរប្រវត្តិសាស្ត្រឡើងវិញបាន វាត្រូវតែធ្វើឡើងមុនពេលcisអេលី។ ទើបតែរត់ git rebase -i និងការរៀបចំឡើងវិញ ឬការច្របាច់ commits មិនលុប​អាថ៌កំបាំង​ទេ លុះត្រាតែអ្នក​កែសម្រួល ឬ​ទម្លាក់​វា​ចោល​ដោយ​ច្បាស់លាស់។ ហើយ​ប្រសិនបើ​សូម្បីតែ​ក្លូន ឬ​សម​មួយ​មាន​ជាមួយ​ឯកសារ​ដើម commitស, អាថ៌កំបាំងរបស់អ្នកនៅតែបន្ត។

អ្វីដែលអាក្រក់ជាងនេះទៅទៀត ការបង្កើតមូលដ្ឋានឡើងវិញដោយមិនបង្ខំឱ្យបានត្រឹមត្រូវ ឬការសម្របសម្រួលឡើងវិញជាមួយអ្នកសហការ អាចណែនាំឡើងវិញនូវព័ត៌មានសម្ងាត់ដែលបានបង្ហាញតាមរយៈការបញ្ចូលគ្នា។

⚠️ ឧទាហរណ៍អប់រំ កុំប្រើក្នុងបរិយាកាសពិត

⚠️ ឧទាហរណ៍អប់រំ កុំដំណើរការលើឃ្លាំងផលិតកម្ម

កែសម្រួល commit មាន​អាថ៌កំបាំង​នេះ ប៉ុន្តែ​ភ្លេច​លុប​វា​ចេញ។ ដែន កំណត់ហេតុ git អាច រកមើល ស្អាតជាងមុន ប៉ុន្តែខ្លឹមសាររសើបនៅតែអាចស្ដារឡើងវិញបាន។

ហានិភ័យក្នុងពិភពលោកពិតពីលិខិតសម្គាល់ដែលត្រូវបានបំភ្លេចចោលនៅក្នុងប្រវត្តិ Git

នេះមិនមែនជាទ្រឹស្តីទេ។ អ្នកវាយប្រហារស្កេនឃ្លាំងសាធារណៈ និងឯកជនយ៉ាងសកម្មដើម្បីស្វែងរកអាថ៌កំបាំងដែលលាក់ខ្លួននៅក្នុង commit ប្រវត្តិ។ GitHub forks, mirror repos និង cached CI/CD pipelineទាំងអស់អាចលាក់បាំងសញ្ញាសម្ងាត់ដែលត្រូវបានបំភ្លេចចោលទាំងនោះ។

  • សោ API ដែលលេចធ្លាយពីឯកសារចាស់ កំណត់ហេតុ git បាននាំឱ្យមានការគិតថ្លៃរាប់ពាន់លើ cloud សម្រាប់ក្រុមហ៊ុនចាប់ផ្តើមអាជីវកម្មមួយ។
  • ថូខឹន OAuth committed ដែលបន្ទាប់មកត្រូវបាន "លុប" ត្រូវបានប្រើដើម្បីលួចយកគណនីអ្នកប្រើប្រាស់។
  • អាថ៌កំបាំង​ដែល​ត្រូវ​បាន​កប់​យ៉ាង​ជ្រៅ​នៅ​ក្នុង​គម្រោង​ប្រភព​បើកចំហ​បាន​បង្ក​ឱ្យ​មាន​ឧប្បត្តិហេតុ​សន្តិសុខ​ធំៗ។

បញ្ហាទាំងនេះមានទំហំ CI/CDការងារនីមួយៗដែលចម្លង repo ដំណើរការ កំណត់ហេតុ git នៅក្រោមក្រណាត់ ហើយវត្ថុបុរាណសាងសង់នីមួយៗអាចរួមបញ្ចូលដាននៃអាថ៌កំបាំងដែលបានបង្ហាញ។

ការសម្អាតទិន្នន័យរសើបជាមួយ git filter-repo

ប្រសិនបើការខូចខាតកើតឡើង ឧបករណ៍ដែលអាចទុកចិត្តបំផុតសម្រាប់សម្អាតវាគឺ git filter-repo។ មិន​ដូច ការ​បង្កើត​មូលដ្ឋាន​ឡើងវិញ​របស់ gitដែលសរសេរឡើងវិញ បុគ្គល commits, git filter-repo អាចសរសេរឡើងវិញទាំងមូល commit ប្រវត្តិ​ដែល​ផ្អែក​លើ​ផ្លូវ​ឯកសារ លំនាំ ឬ​ខ្លឹមសារ។

ឧទាហរណ៍៖ ដើម្បីលុបការកើតឡើងទាំងអស់នៃ config.json ដែលអាចមានអាថ៌កំបាំង៖

⚠️ ឧទាហរណ៍អប់រំ សូមផ្ទៀងផ្ទាត់នៅក្នុង repo សាកល្បងមុនពេលប្រើប្រាស់ក្នុងផលិតកម្ម

ឬដើម្បីលុបទាំងអស់ commits ដែលរួមបញ្ចូលខ្សែអក្សរជាក់លាក់មួយ (ឧ. AWS_SECRET_ACCESS_KEY):

⚠️ ឧទាហរណ៍អប់រំ សូមផ្ទៀងផ្ទាត់នៅក្នុង repo សាកល្បងមុនពេលប្រើប្រាស់ក្នុងផលិតកម្ម

សូមប្រយ័ត្ន៖ វានឹងសរសេរឡើងវិញ commit ហាស។ អ្នកនឹងត្រូវបង្ខំឱ្យចុច និងជូនដំណឹងដល់អ្នកសហការទាំងអស់។ សោស្វ័យប្រវត្តិកម្ម ឬសោដាក់ពង្រាយណាមួយដែលភ្ជាប់ទៅ commit ហាសនឹងបែក។

លើសពីនេះ ឧបករណ៍ដូចជា សម្អាត BFG Repo ផ្តល់ជូននូវសមត្ថភាពស្រដៀងគ្នា ប៉ុន្តែមានភាពបត់បែនតិចជាង ហើយឥឡូវនេះត្រូវបានចាត់ទុកថាហួសសម័យសម្រាប់ករណីស្មុគស្មាញ។

ការទប់ស្កាត់ការលេចធ្លាយសម្ងាត់មុនពេលវាទៅដល់ Git

ការបង្ការល្អជាងការសម្អាត។ នេះជាវិធីដើម្បីបញ្ឈប់អាថ៌កំបាំងពីការលេចធ្លាយ កំណត់ហេតុ git:

1. Pre-commit Hooks

ប្រើឧបករណ៍ដូច pre-commit, gitleakstalisman ដើម្បីស្កេនរកអាថ៌កំបាំងជាមុនសិន commits:

2. CI/CD Pipeline ការអនុវត្ត

បញ្ចូល ការរកឃើញសម្ងាត់ ចូលទៅក្នុងការងារ CI របស់អ្នក។ ការបរាជ័យកើតឡើងនៅពេលដែលអាថ៌កំបាំងត្រូវបានរកឃើញ។ ធ្វើឱ្យរឿងនេះក្លាយជាគោលនយោបាយ។

៣. ការគ្រប់គ្រងអាថ៌កំបាំង

កុំ​សរសេរ​កូដ​អត្តសញ្ញាណ​ឲ្យ​បាន​ហ្មត់ចត់​ឡើយ។ ប្រើ​អថេរ​បរិស្ថាន ឃ្លាំង​សុវត្ថិភាព ឬ​កម្មវិធី​គ្រប់គ្រង​សម្ងាត់​ចាប់ពី​ថ្ងៃ​ដំបូង។

៤. ការពឹងផ្អែកលើការធ្វើសវនកម្ម

កុំទុកចិត្តកញ្ចប់ភាគីទីបីដោយងងឹតងងល់។ អាថ៌កំបាំងអាចលេចធ្លាយ តាមរយៈស្រទាប់ npm, PyPI ឬ Docker។

ការជួសជុលចុងក្រោយ៖ សម្អាតអាថ៌កំបាំងជាមួយ git filter-repo

ការលុប​អាថ៌កំបាំង​ចេញពី​កូដ​គឺមិនគ្រប់គ្រាន់ទេ។ កំណត់ហេតុ git រក្សាកំណត់ត្រាពេញលេញ លុះត្រាតែអ្នកចាត់វិធានការដោយចេតនាដើម្បីសរសេរប្រវត្តិសាស្ត្រឡើងវិញ។ កុំពឹងផ្អែកលើ កន្លែងរក្សាទុក git ឬដុតនំពាក់កណ្តាល ការ​បង្កើត​មូលដ្ឋាន​ឡើងវិញ​របស់ git ការប៉ុនប៉ង។ ប្រើ git filter-repo នៅពេលដែលអ្នកត្រូវការសម្អាតយ៉ាងស៊ីជម្រៅ និងអនុវត្តគោលការណ៍ និងការស្កេនមុនពេលដែលអាថ៌កំបាំងទៅដល់ឃ្លាំងទិន្នន័យរបស់អ្នកតាំងពីដំបូង។

សម្រាប់ការរកឃើញការសម្ងាត់ជាមុន សូមពិចារណាប្រើឧបករណ៍ដូចជា ស៊ីហ្គេនី ដើម្បីធានារបស់អ្នក។ pipelineស, អនុវត្ត commit អនាម័យ និងការពារការលេចធ្លាយដែលមានតម្លៃថ្លៃមុនពេលវាលេចចេញមក។ Git មិនដែលភ្លេចឡើយ ប៉ុន្តែអ្នកអាចធ្វើឱ្យប្រាកដថាវាមិនដែលចងចាំអាថ៌កំបាំងរបស់អ្នកតាំងពីដំបូងឡើយ។

ឧបករណ៍វិភាគសមាសភាពកម្មវិធី sca
ផ្តល់អាទិភាព ដោះស្រាយ និងធានាសុវត្ថិភាពហានិភ័យផ្នែកទន់របស់អ្នក
ទទួលបានគណនីឥតគិតថ្លៃរបស់អ្នក។
មិនតម្រូវឱ្យមានកាតឥណទានទេ។

ធានាសុវត្ថិភាពនៃការអភិវឌ្ឍន៍ និងការដឹកជញ្ជូនកម្មវិធីរបស់អ្នក

ជាមួយឈុតផលិតផល Xygeni