[{"data":1,"prerenderedAt":811},["ShallowReactive",2],{"/it-it/topics/version-control/version-control-best-practices/":3,"navigation-it-it":159,"banner-it-it":576,"footer-it-it":588,"next-steps-it-it":796},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":13,"_id":153,"_type":154,"title":7,"_source":155,"_file":156,"_stem":157,"_extension":158},"/it-it/topics/version-control/version-control-best-practices","version-control",false,"",{"title":9,"description":10,"config":11},"Quali sono le best practice per il controllo della versione in Git?","GitLab Topics | What are Git version control best practices?",{"ignoreTitleCharLimit":12},true,[14,28,34,122,151],{"type":15,"componentName":15,"componentContent":16},"CommonBreadcrumbs",{"crumbs":17},[18,22,26],{"title":19,"config":20},"Industry topics",{"href":21},"/topics/",{"title":23,"config":24},"Version control",{"href":25},"/it-it/topics/version-control/",{"title":27},"Version control best practices",{"type":29,"componentName":29,"componentContent":30},"TopicsHero",{"title":9,"text":31,"config":32},"Sfruttare appieno le potenzialità di Git significa apprendere le best practice necessarie per ottimizzare i flussi di lavoro e garantire la coerenza all'interno di una codebase.",{"id":33,"twoColumns":6},"quali-sono-le-best-practice-per-il-controllo-della-versione-in-git?",{"type":35,"componentName":35,"componentContent":36},"CommonSideNavigationWithTree",{"anchors":37,"components":72},{"text":38,"data":39},"On this page",[40,44,48,52,56,60,64,68],{"text":41,"config":42},"L'importanza delle best practice per il controllo della versione in Git",{"href":43},"#the-importance-of-git-version-control-best-practices",{"text":45,"config":46},"Apporta modifiche incrementali e di minore entità",{"href":47},"#make-incremental-small-changes",{"text":49,"config":50},"Utilizza commit atomici",{"href":51},"#keep-commits-atomic",{"text":53,"config":54},"Sviluppa sfruttando i rami",{"href":55},"#develop-using-branches",{"text":57,"config":58},"Scrivi messaggi di commit descrittivi",{"href":59},"#write-descriptive-commit-messages",{"text":61,"config":62},"Ricava feedback dalle revisioni del codice",{"href":63},"#obtain-feedback-through-code-reviews",{"text":65,"config":66},"Individua una strategia di gestione dei rami",{"href":67},"#identify-a-branching-strategy",{"text":69,"config":70},"Conclusioni",{"href":71},"#conclusion",[73,79,84,89,94,99,104,109,114],{"type":74,"componentName":74,"componentContent":75},"TopicsCopy",{"header":41,"text":76,"config":77},"Le best practice per il [controllo della versione in Git](/topics/version-control/){data-ga-name =\"git version control\" data-ga-location =\"body\"} aiutano i team di sviluppo ad adattarsi ai rapidi cambiamenti del settore e a soddisfare la domanda di nuove funzionalità da parte dei clienti. I ritmi con cui i team sono chiamati a lavorare possono portare alla creazione di silo, rallentando in tal modo la velocità di programmazione. I team di sviluppo si affidano al controllo della versione per [ottimizzare la collaborazione](/topics/version-control/software-team-collaboration/){data-ga-name =\"streamline collaboration\"data-ga-location =\"body\"} ed eliminare i silo di dati.\n\nGrazie alle [best practice di Git](/images/press/git-cheat-sheet.pdf){data-ga-name =\"git best practice\" data-ga-location =\"body\"}, i team possono coordinare tutte le modifiche in un progetto software e gestire rapidamente i rami per agevolare la collaborare e condividere feedback in tempi brevi, portando a cambiamenti immediati e attuabili. Git, vera e propria pietra angolare per la programmazione dei software moderni, offre una suite di potenti strumenti e funzionalità progettati per ottimizzare i cicli di sviluppo, migliorare la qualità del codice e favorire la collaborazione fra i membri del team.\n",{"id":78},"the-importance-of-git-version-control-best-practices",{"type":74,"componentName":74,"componentContent":80},{"header":45,"text":81,"config":82},"Scrivi la minor quantità di codice possibile per risolvere un problema. Una volta individuato un problema o un miglioramento, il modo più efficace per provare una soluzione nuova e non ancora testata è suddividere l'aggiornamento in piccoli batch di valore, facilmente e rapidamente testabili con l'utente finale per dimostrare la validità della soluzione proposta ed eseguire il rollback nel caso in cui il risultato non sia soddisfacente, senza tuttavia rendere obsoleta la nuova funzionalità.\n\n\nIl commit del codice in piccoli batch riduce la probabilità che emergano conflitti di integrazione, poiché più a lungo un ramo è separato da quello principale o dalla codeline, maggiore sarà il tempo a disposizione degli altri sviluppatori per eseguire il merge al ramo principale, ragion per cui è probabile che si verifichino conflitti di integrazione durante il merge. Per risolvere tale problema, è sufficiente eseguire commit frequenti e di piccola entità. Anche le modifiche incrementali aiutano i membri del team a ripristinare facilmente le versioni precedenti in caso di conflitti di merge, soprattutto quando tali modifiche sono state adeguatamente documentate sotto forma di messaggi di commit descrittivi.\n",{"id":83},"make-incremental-small-changes",{"type":74,"componentName":74,"componentContent":85},{"header":49,"text":86,"config":87},"Nell'ambito delle piccole modifiche, i commit atomici sono una singola unità di lavoro che coinvolge solo un'attività o una correzione (come un upgrade, la correzione di un bug o una rifattorizzazione). I commit atomici velocizzano le revisioni del codice e semplificano i revert poiché possono essere applicati o ripristinati senza effetti collaterali indesiderati.\n\n\nL'obiettivo dei commit atomici non è creare centinaia di commit, ma raggrupparli in base al contesto. Ad esempio, se uno sviluppatore deve eseguire il refactoring del codice e aggiungere una nuova funzionalità, creerà due commit separati anziché un commit monolitico che includa modifiche con finalità diverse.\n",{"id":88},"keep-commits-atomic",{"type":74,"componentName":74,"componentContent":90},{"header":53,"text":91,"config":92},"Utilizzando i rami, i team di sviluppo software possono apportare modifiche compromettere la codeline principale. La cronologia di esecuzione delle modifiche viene monitorata in un ramo e si esegue il merge del codice, una volta pronto, nel ramo principale.\n\n\nIl ramo organizza lo sviluppo e separa gli elementi work-in-progress dal codice testato e stabile nel ramo principale. Utilizzare i rami nel processo di sviluppo impedisce a bug e vulnerabilità di penetrare nel codice sorgente e di causare problemi agli utenti, in quanto è più facile isolarli e testarli in un ramo.\n",{"id":93},"develop-using-branches",{"type":74,"componentName":74,"componentContent":95},{"header":57,"text":96,"config":97},"I messaggi di commit descrittivi sono importanti tanto quanto una modifica. Scrivi messaggi di commit descrittivi utilizzando un verbo all'imperativo presente per indicare la finalità di ciascun commit in modo chiaro e conciso. A ogni commit può essere associato un solo scopo, illustrato nel dettaglio nel messaggio corrispondente. La [documentazione Git](https://git.kernel.org/pub/scm/git/git.git/tree/Documentation/SubmittingPatches?id=HEAD#n133) fornisce indicazioni su come scrivere messaggi di commit descrittivi:\n\n\n> Descrivi le modifiche utilizzando un verbo all'imperativo presente, ad esempio \"fai in modo che xyz esegua jhk\" anziché \"\\[Questa patch] fa in modo che xyz esegua jhk\" o \"\\[Ho] modificato xyz in modo che esegua jhk\", proprio come se stessi ordinando alla codebase di cambiare il suo comportamento. Fa' in modo che la tua spiegazione sia sempre comprensibile, anche in assenza di risorse esterne. Anziché fornire un URL a un archivio di mailing list, riassumi i punti rilevanti della discussione.\n\n\nScrivere messaggi di commit in questo modo obbliga i team di sviluppo a comprendere il valore che un'aggiunta o una correzione apportano alla riga di codice esistente. Se i team non riescono a comprenderne o a descriverne l'importanza, potrebbe essere utile rivalutare le motivazioni alla base del commit. Ci sarà comunque tempo per eseguire i commit in un secondo momento, purché le modifiche vengano conservate in stash e vi sia coerenza fra i commit.\n",{"id":98},"write-descriptive-commit-messages",{"type":74,"componentName":74,"componentContent":100},{"header":61,"text":101,"config":102},"Richiedere un feedback ad altri è un ottimo modo per garantire la qualità del codice. Le [revisioni del codice](/topics/version-control/what-is-code-review/){data-ga-name = \"code reviews\" data-ga-location =\"body\"} sono utili per verificare se una proposta sia realmente utile a risolvere un problema nel modo più efficace possibile. Chiedere a membri di altri team di rivedere il codice è importante, in quanto alcune aree della codebase potrebbero esigere la padronanza di conoscenze specifiche sui domini, o persino avere implicazioni sulla sicurezza al di là delle competenze del singolo collaboratore.\n\n\nÈ consigliabile includere nella conversazione uno specifico stakeholder per accelerare il ciclo di feedback, prevenendo problemi nelle fasi successive dello sviluppo software. Questa dinamica è particolarmente importante per gli sviluppatori junior, in quanto i colleghi di livello superiore possono trasmettere le proprie conoscenze in modo molto pratico ed efficiente attraverso le revisioni del codice.\n",{"id":103},"obtain-feedback-through-code-reviews",{"type":74,"componentName":74,"componentContent":105},{"header":65,"text":106,"config":107},"I team di sviluppo software includono professionisti con esperienze e competenze diverse, la cui eterogeneità può portare a flussi di lavoro in conflitto fra loro. Stabilire una strategia univoca di gestione dei rami è la soluzione a un processo di sviluppo caotico.\n\n\nSebbene esistano diversi approcci allo sviluppo software, i più comuni sono i seguenti:\n\n\n* Flusso di lavoro centralizzato: i team utilizzano un solo repository ed eseguono il commit direttamente al ramo principale.\n\n* Gestione delle funzionalità in rami: i team utilizzano un nuovo ramo per ogni funzionalità e non eseguono il commit direttamente al ramo principale.\n\n* GitFlow: una versione estrema della gestione delle funzionalità in rami, in base alla quale lo sviluppo avviene sul ramo dedicato, si sposta su un ramo della release e infine viene sottoposto a merge nel ramo principale.\n\n* Gestione personalizzata dei rami: simile alla gestione delle funzionalità in rami, da cui differisce perché si sviluppa su un ramo non in base alla funzionalità ma allo sviluppatore. Ogni utente esegue il merge al ramo principale una volta completato il lavoro.\n\n\nMolti team decidono di seguire un flusso di lavoro consolidato, mentre altri scelgono un approccio personalizzato a seconda delle esigenze. Indipendentemente dalla strategia, è importante comunicare al team la decisione e la logistica del flusso di lavoro, offrendo la necessaria formazione nel caso in cui alcuni non conoscano l'approccio.\n",{"id":108},"identify-a-branching-strategy",{"type":74,"componentName":74,"componentContent":110},{"header":69,"text":111,"config":112},"Adottare le best practice per il controllo della versione in Git è fondamentale per i team di sviluppo software, in quanto permette di sfruttare funzionalità e strumenti potenti che migliorano i flussi di lavoro e la gestione della cronologia delle versioni. Inoltre, promuove una collaborazione produttiva, ottimizza il processo di revisione e tutela l'integrità del codice. L'integrazione di sistemi di controllo della versione nel ciclo di sviluppo è ormai un requisito fondamentale.\n\nI vantaggi del controllo della versione sono innegabili, poiché offrono una roadmap verso il successo alle aziende che intendono consolidarsi in un settore competitivo come quello dello sviluppo software. Adottando queste best practice, i team possono preparare il terreno per la crescita dei progetti e per lo sviluppo di soluzioni sempre più innovative.\n",{"id":113},"conclusion",{"type":115,"componentName":115,"componentContent":116},"TopicsCallToAction",{"subtitle":117,"primaryButton":118},"Scopri come GitLab aiuta i team a scrivere codice di alta qualità",{"text":119,"config":120},"Scopri di più",{"href":121},"/it-it/solutions/source-code-management/",{"type":123,"componentName":123,"componentContent":124},"CommonResourcesContainer",{"header":125,"tabs":126},"Vuoi saperne di più su Git e sulle best practice?",[127],{"name":128,"items":129,"config":150},"resources",[130,140],{"header":131,"type":132,"image":133,"link":136},"Scopri come Worldline usa GitLab per migliorare le revisioni del codice","Caso di studio",{"altText":131,"config":134},{"src":135},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749157557/Website/Topics/resources_10.jpg",{"text":119,"config":137},{"href":138,"icon":139,"modal":6}," /customers/worldline/","Web",{"header":141,"type":142,"image":143,"link":146},"Scopri una strategia di creazione dei rami in Git per semplificare lo sviluppo del software","E-book",{"altText":141,"config":144},{"src":145},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749157556/Website/Topics/resources_1.jpg",{"text":119,"config":147},{"href":148,"icon":149,"modal":6},"/resources/ebook-git-branching-strategies/","Book",{"key":128},{"type":152,"componentName":152},"CommonNextSteps","content:it-it:topics:version-control:version-control-best-practices:index.yml","yaml","content","it-it/topics/version-control/version-control-best-practices/index.yml","it-it/topics/version-control/version-control-best-practices/index","yml",{"_path":160,"_dir":161,"_draft":6,"_partial":6,"_locale":7,"data":162,"_id":572,"_type":154,"title":573,"_source":155,"_file":574,"_stem":575,"_extension":158},"/shared/it-it/main-navigation","it-it",{"logo":163,"freeTrial":168,"sales":173,"login":178,"items":183,"search":513,"minimal":549,"duo":563},{"config":164},{"href":165,"dataGaName":166,"dataGaLocation":167},"/it-it/","gitlab logo","header",{"text":169,"config":170},"Ottieni una prova gratuita",{"href":171,"dataGaName":172,"dataGaLocation":167},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":174,"config":175},"Contatta le vendite",{"href":176,"dataGaName":177,"dataGaLocation":167},"/it-it/sales/","sales",{"text":179,"config":180},"Accedi",{"href":181,"dataGaName":182,"dataGaLocation":167},"https://gitlab.com/users/sign_in/","sign in",[184,227,324,329,434,494],{"text":185,"config":186,"cards":188,"footer":210},"Piattaforma",{"dataNavLevelOne":187},"platform",[189,195,203],{"title":185,"description":190,"link":191},"La piattaforma DevSecOps più completa basata sull'IA",{"text":192,"config":193},"Scopri la nostra piattaforma",{"href":194,"dataGaName":187,"dataGaLocation":167},"/it-it/platform/",{"title":196,"description":197,"link":198},"GitLab Duo (IA)","Sviluppa software più velocemente con l'IA in ogni fase del ciclo di sviluppo",{"text":199,"config":200},"Ti presentiamo GitLab Duo",{"href":201,"dataGaName":202,"dataGaLocation":167},"/it-it/gitlab-duo/","gitlab duo ai",{"title":204,"description":205,"link":206},"Perché scegliere GitLab","Dieci motivi per cui le aziende scelgono GitLab",{"text":119,"config":207},{"href":208,"dataGaName":209,"dataGaLocation":167},"/it-it/why-gitlab/","why gitlab",{"title":211,"items":212},"Primi passi con",[213,218,223],{"text":214,"config":215},"Platform engineering",{"href":216,"dataGaName":217,"dataGaLocation":167},"/it-it/solutions/platform-engineering/","platform engineering",{"text":219,"config":220},"Esperienza d'uso degli sviluppatori",{"href":221,"dataGaName":222,"dataGaLocation":167},"/it-it/developer-experience/","Developer experience",{"text":224,"config":225},"MLOps",{"href":226,"dataGaName":224,"dataGaLocation":167},"/it-it/topics/devops/the-role-of-ai-in-devops/",{"text":228,"left":12,"config":229,"link":231,"lists":235,"footer":306},"Prodotti",{"dataNavLevelOne":230},"solutions",{"text":232,"config":233},"Visualizza tutte le soluzioni",{"href":234,"dataGaName":230,"dataGaLocation":167},"/it-it/solutions/",[236,261,284],{"title":237,"description":238,"link":239,"items":244},"Automazione","CI/CD e automazione per accelerare il deployment",{"config":240},{"icon":241,"href":242,"dataGaName":243,"dataGaLocation":167},"AutomatedCodeAlt","/it-it/solutions/delivery-automation/","automated software delivery",[245,249,253,257],{"text":246,"config":247},"CI/CD",{"href":248,"dataGaLocation":167,"dataGaName":246},"/it-it/solutions/continuous-integration/",{"text":250,"config":251},"Sviluppo assistito dall'IA",{"href":201,"dataGaLocation":167,"dataGaName":252},"AI assisted development",{"text":254,"config":255},"Gestione del codice sorgente",{"href":121,"dataGaLocation":167,"dataGaName":256},"Source Code Management",{"text":258,"config":259},"Distribuzione software automatizzata",{"href":242,"dataGaLocation":167,"dataGaName":260},"Automated software delivery",{"title":262,"description":263,"link":264,"items":269},"Sicurezza","Distribuisci il codice più velocemente senza compromettere la sicurezza",{"config":265},{"href":266,"dataGaName":267,"dataGaLocation":167,"icon":268},"/it-it/solutions/security-compliance/","security and compliance","ShieldCheckLight",[270,274,279],{"text":271,"config":272},"Sicurezza e conformità",{"href":266,"dataGaLocation":167,"dataGaName":273},"Security & Compliance",{"text":275,"config":276},"Sicurezza della catena di fornitura del software",{"href":277,"dataGaLocation":167,"dataGaName":278},"/it-it/solutions/supply-chain/","Software supply chain security",{"text":280,"config":281},"Conformità e governance",{"href":282,"dataGaLocation":167,"dataGaName":283},"/it-it/solutions/continuous-software-compliance/","Compliance and governance",{"title":285,"link":286,"items":291},"Misurazione",{"config":287},{"icon":288,"href":289,"dataGaName":290,"dataGaLocation":167},"DigitalTransformation","/it-it/solutions/visibility-measurement/","visibility and measurement",[292,296,301],{"text":293,"config":294},"Visibilità e misurazione",{"href":289,"dataGaLocation":167,"dataGaName":295},"Visibility and Measurement",{"text":297,"config":298},"Gestione del flusso di valore",{"href":299,"dataGaLocation":167,"dataGaName":300},"/it-it/solutions/value-stream-management/","Value Stream Management",{"text":302,"config":303},"Analisi e approfondimenti",{"href":304,"dataGaLocation":167,"dataGaName":305},"/it-it/solutions/analytics-and-insights/","Analytics and insights",{"title":307,"items":308},"GitLab per",[309,314,319],{"text":310,"config":311},"Aziende",{"href":312,"dataGaLocation":167,"dataGaName":313},"/it-it/enterprise/","enterprise",{"text":315,"config":316},"Piccole imprese",{"href":317,"dataGaLocation":167,"dataGaName":318},"/it-it/small-business/","small business",{"text":320,"config":321},"Pubblica amministrazione",{"href":322,"dataGaLocation":167,"dataGaName":323},"/it-it/solutions/public-sector/","public sector",{"text":325,"config":326},"Prezzi",{"href":327,"dataGaName":328,"dataGaLocation":167,"dataNavLevelOne":328},"/it-it/pricing/","pricing",{"text":330,"config":331,"link":332,"lists":336,"feature":421},"Risorse",{"dataNavLevelOne":128},{"text":333,"config":334},"Visualizza tutte le risorse",{"href":335,"dataGaName":128,"dataGaLocation":167},"/it-it/resources/",[337,370,393],{"title":338,"items":339},"Per iniziare",[340,345,350,355,360,365],{"text":341,"config":342},"Installazione",{"href":343,"dataGaName":344,"dataGaLocation":167},"/it-it/install/","install",{"text":346,"config":347},"Guide rapide",{"href":348,"dataGaName":349,"dataGaLocation":167},"/it-it/get-started/","quick setup checklists",{"text":351,"config":352},"Formazione",{"href":353,"dataGaLocation":167,"dataGaName":354},"https://university.gitlab.com/","learn",{"text":356,"config":357},"Documentazione di prodotto",{"href":358,"dataGaName":359,"dataGaLocation":167},"https://docs.gitlab.com/","product documentation",{"text":361,"config":362},"Video sulle best practice",{"href":363,"dataGaName":364,"dataGaLocation":167},"/it-it/getting-started-videos/","best practice videos",{"text":366,"config":367},"Integrazioni",{"href":368,"dataGaName":369,"dataGaLocation":167},"/it-it/integrations/","integrations",{"title":371,"items":372},"Scopri",[373,378,383,388],{"text":374,"config":375},"Storie di successo dei clienti",{"href":376,"dataGaName":377,"dataGaLocation":167},"/it-it/customers/","customer success stories",{"text":379,"config":380},"Blog",{"href":381,"dataGaName":382,"dataGaLocation":167},"/blog/","blog",{"text":384,"config":385},"Lavorare da remoto",{"href":386,"dataGaName":387,"dataGaLocation":167},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":389,"config":390},"TeamOps",{"href":391,"dataGaName":392,"dataGaLocation":167},"/it-it/teamops/","teamops",{"title":394,"items":395},"Connetti",[396,401,406,411,416],{"text":397,"config":398},"Servizi GitLab",{"href":399,"dataGaName":400,"dataGaLocation":167},"/it-it/services/","services",{"text":402,"config":403},"Community",{"href":404,"dataGaName":405,"dataGaLocation":167},"/community/","community",{"text":407,"config":408},"Forum",{"href":409,"dataGaName":410,"dataGaLocation":167},"https://forum.gitlab.com/","forum",{"text":412,"config":413},"Eventi",{"href":414,"dataGaName":415,"dataGaLocation":167},"/events/","events",{"text":417,"config":418},"Partner",{"href":419,"dataGaName":420,"dataGaLocation":167},"/it-it/partners/","partners",{"backgroundColor":422,"textColor":423,"text":424,"image":425,"link":429},"#2f2a6b","#fff","Approfondimenti e informazioni per il futuro dello sviluppo software",{"altText":426,"config":427},"scheda promozionale per The Source",{"src":428},"/images/navigation/the-source-promo-card.svg",{"text":430,"config":431},"Leggi le ultime notizie",{"href":432,"dataGaName":433,"dataGaLocation":167},"/it-it/the-source/","the source",{"text":435,"config":436,"lists":438},"Azienda",{"dataNavLevelOne":437},"company",[439],{"items":440},[441,446,452,454,459,464,469,474,479,484,489],{"text":442,"config":443},"Informazioni",{"href":444,"dataGaName":445,"dataGaLocation":167},"/it-it/company/","about",{"text":447,"config":448,"footerGa":451},"Opportunità di lavoro",{"href":449,"dataGaName":450,"dataGaLocation":167},"/jobs/","jobs",{"dataGaName":450},{"text":412,"config":453},{"href":414,"dataGaName":415,"dataGaLocation":167},{"text":455,"config":456},"Leadership",{"href":457,"dataGaName":458,"dataGaLocation":167},"/company/team/e-group/","leadership",{"text":460,"config":461},"Team",{"href":462,"dataGaName":463,"dataGaLocation":167},"/company/team/","team",{"text":465,"config":466},"Manuale",{"href":467,"dataGaName":468,"dataGaLocation":167},"https://handbook.gitlab.com/","handbook",{"text":470,"config":471},"Rapporti con gli investitori",{"href":472,"dataGaName":473,"dataGaLocation":167},"https://ir.gitlab.com/","investor relations",{"text":475,"config":476},"Trust Center",{"href":477,"dataGaName":478,"dataGaLocation":167},"/it-it/security/","trust center",{"text":480,"config":481},"AI Transparency Center",{"href":482,"dataGaName":483,"dataGaLocation":167},"/it-it/ai-transparency-center/","ai transparency center",{"text":485,"config":486},"Newsletter",{"href":487,"dataGaName":488,"dataGaLocation":167},"/company/contact/","newsletter",{"text":490,"config":491},"Rassegna stampa",{"href":492,"dataGaName":493,"dataGaLocation":167},"/press/","press",{"text":495,"config":496,"lists":497},"Contattaci",{"dataNavLevelOne":437},[498],{"items":499},[500,503,508],{"text":174,"config":501},{"href":176,"dataGaName":502,"dataGaLocation":167},"talk to sales",{"text":504,"config":505},"Richiedi assistenza",{"href":506,"dataGaName":507,"dataGaLocation":167},"/support/","get help",{"text":509,"config":510},"Portale clienti",{"href":511,"dataGaName":512,"dataGaLocation":167},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":514,"login":515,"suggestions":522},"Chiudi",{"text":516,"link":517},"Per cercare repository e progetti, accedi a",{"text":518,"config":519},"gitlab.com",{"href":181,"dataGaName":520,"dataGaLocation":521},"search login","search",{"text":523,"default":524},"Suggerimenti",[525,528,533,535,540,545],{"text":196,"config":526},{"href":201,"dataGaName":527,"dataGaLocation":521},"GitLab Duo (AI)",{"text":529,"config":530},"Suggerimenti di codice (IA)",{"href":531,"dataGaName":532,"dataGaLocation":521},"/it-it/solutions/code-suggestions/","Code Suggestions (AI)",{"text":246,"config":534},{"href":248,"dataGaName":246,"dataGaLocation":521},{"text":536,"config":537},"GitLab su AWS",{"href":538,"dataGaName":539,"dataGaLocation":521},"/it-it/partners/technology-partners/aws/","GitLab on AWS",{"text":541,"config":542},"GitLab su Google Cloud",{"href":543,"dataGaName":544,"dataGaLocation":521},"/it-it/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":546,"config":547},"Perché scegliere GitLab?",{"href":208,"dataGaName":548,"dataGaLocation":521},"Why GitLab?",{"freeTrial":550,"mobileIcon":555,"desktopIcon":560},{"text":551,"config":552},"Inizia la prova gratuita",{"href":553,"dataGaName":172,"dataGaLocation":554},"https://gitlab.com/-/trials/new/","nav",{"altText":556,"config":557},"Icona di GitLab",{"src":558,"dataGaName":559,"dataGaLocation":554},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":556,"config":561},{"src":562,"dataGaName":559,"dataGaLocation":554},"/images/brand/gitlab-logo-type.svg",{"freeTrial":564,"mobileIcon":568,"desktopIcon":570},{"text":565,"config":566},"Scopri di più su GitLab Duo",{"href":201,"dataGaName":567,"dataGaLocation":554},"gitlab duo",{"altText":556,"config":569},{"src":558,"dataGaName":559,"dataGaLocation":554},{"altText":556,"config":571},{"src":562,"dataGaName":559,"dataGaLocation":554},"content:shared:it-it:main-navigation.yml","Main Navigation","shared/it-it/main-navigation.yml","shared/it-it/main-navigation",{"_path":577,"_dir":161,"_draft":6,"_partial":6,"_locale":7,"title":578,"button":579,"config":583,"_id":585,"_type":154,"_source":155,"_file":586,"_stem":587,"_extension":158},"/shared/it-it/banner","La GitLab Duo Agent Platform è ora in beta pubblica!",{"text":119,"config":580},{"href":581,"dataGaName":582,"dataGaLocation":167},"/it-it/gitlab-duo/agent-platform/","duo banner",{"layout":584},"release","content:shared:it-it:banner.yml","shared/it-it/banner.yml","shared/it-it/banner",{"_path":589,"_dir":161,"_draft":6,"_partial":6,"_locale":7,"data":590,"_id":792,"_type":154,"title":793,"_source":155,"_file":794,"_stem":795,"_extension":158},"/shared/it-it/main-footer",{"text":591,"source":592,"edit":598,"contribute":603,"config":608,"items":613,"minimal":784},"Git è un marchio di Software Freedom Conservancy e l'uso del termine \"GitLab\" è regolato da un accordo di licenza",{"text":593,"config":594},"Visualizza origine pagina",{"href":595,"dataGaName":596,"dataGaLocation":597},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":599,"config":600},"Modifica questa pagina",{"href":601,"dataGaName":602,"dataGaLocation":597},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":604,"config":605},"Contribuisci",{"href":606,"dataGaName":607,"dataGaLocation":597},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":609,"facebook":610,"youtube":611,"linkedin":612},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[614,637,691,721,755],{"title":185,"links":615,"subMenu":620},[616],{"text":617,"config":618},"Piattaforma DevSecOps",{"href":194,"dataGaName":619,"dataGaLocation":597},"devsecops platform",[621],{"title":325,"links":622},[623,627,632],{"text":624,"config":625},"Visualizza i piani",{"href":327,"dataGaName":626,"dataGaLocation":597},"view plans",{"text":628,"config":629},"Perché passare a Premium?",{"href":630,"dataGaName":631,"dataGaLocation":597},"/it-it/pricing/premium/","why premium",{"text":633,"config":634},"Perché passare a Ultimate?",{"href":635,"dataGaName":636,"dataGaLocation":597},"/it-it/pricing/ultimate/","why ultimate",{"title":638,"links":639},"Soluzioni",[640,645,648,650,655,660,664,667,670,675,677,679,681,686],{"text":641,"config":642},"Trasformazione digitale",{"href":643,"dataGaName":644,"dataGaLocation":597},"/it-it/topics/digital-transformation/","digital transformation",{"text":271,"config":646},{"href":266,"dataGaName":647,"dataGaLocation":597},"security & compliance",{"text":258,"config":649},{"href":242,"dataGaName":243,"dataGaLocation":597},{"text":651,"config":652},"Sviluppo Agile",{"href":653,"dataGaName":654,"dataGaLocation":597},"/it-it/solutions/agile-delivery/","agile delivery",{"text":656,"config":657},"Trasformazione cloud",{"href":658,"dataGaName":659,"dataGaLocation":597},"/it-it/topics/cloud-native/","cloud transformation",{"text":661,"config":662},"SCM",{"href":121,"dataGaName":663,"dataGaLocation":597},"source code management",{"text":246,"config":665},{"href":248,"dataGaName":666,"dataGaLocation":597},"continuous integration & delivery",{"text":297,"config":668},{"href":299,"dataGaName":669,"dataGaLocation":597},"value stream management",{"text":671,"config":672},"GitOps",{"href":673,"dataGaName":674,"dataGaLocation":597},"/it-it/solutions/gitops/","gitops",{"text":310,"config":676},{"href":312,"dataGaName":313,"dataGaLocation":597},{"text":315,"config":678},{"href":317,"dataGaName":318,"dataGaLocation":597},{"text":320,"config":680},{"href":322,"dataGaName":323,"dataGaLocation":597},{"text":682,"config":683},"Istruzione",{"href":684,"dataGaName":685,"dataGaLocation":597},"/it-it/solutions/education/","education",{"text":687,"config":688},"Servizi finanziari",{"href":689,"dataGaName":690,"dataGaLocation":597},"/it-it/solutions/finance/","financial services",{"title":330,"links":692},[693,695,697,699,702,704,707,709,711,713,715,717,719],{"text":341,"config":694},{"href":343,"dataGaName":344,"dataGaLocation":597},{"text":346,"config":696},{"href":348,"dataGaName":349,"dataGaLocation":597},{"text":351,"config":698},{"href":353,"dataGaName":354,"dataGaLocation":597},{"text":356,"config":700},{"href":358,"dataGaName":701,"dataGaLocation":597},"docs",{"text":379,"config":703},{"href":381,"dataGaName":382,"dataGaLocation":597},{"text":374,"config":705},{"href":706,"dataGaName":377,"dataGaLocation":597},"/customers/",{"text":384,"config":708},{"href":386,"dataGaName":387,"dataGaLocation":597},{"text":397,"config":710},{"href":399,"dataGaName":400,"dataGaLocation":597},{"text":389,"config":712},{"href":391,"dataGaName":392,"dataGaLocation":597},{"text":402,"config":714},{"href":404,"dataGaName":405,"dataGaLocation":597},{"text":407,"config":716},{"href":409,"dataGaName":410,"dataGaLocation":597},{"text":412,"config":718},{"href":414,"dataGaName":415,"dataGaLocation":597},{"text":417,"config":720},{"href":419,"dataGaName":420,"dataGaLocation":597},{"title":435,"links":722},[723,725,727,729,731,733,735,739,744,746,748,750],{"text":442,"config":724},{"href":444,"dataGaName":437,"dataGaLocation":597},{"text":447,"config":726},{"href":449,"dataGaName":450,"dataGaLocation":597},{"text":455,"config":728},{"href":457,"dataGaName":458,"dataGaLocation":597},{"text":460,"config":730},{"href":462,"dataGaName":463,"dataGaLocation":597},{"text":465,"config":732},{"href":467,"dataGaName":468,"dataGaLocation":597},{"text":470,"config":734},{"href":472,"dataGaName":473,"dataGaLocation":597},{"text":736,"config":737},"Sustainability",{"href":738,"dataGaName":736,"dataGaLocation":597},"/sustainability/",{"text":740,"config":741},"Diversità, inclusione e appartenenza (DIB)",{"href":742,"dataGaName":743,"dataGaLocation":597},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":475,"config":745},{"href":477,"dataGaName":478,"dataGaLocation":597},{"text":485,"config":747},{"href":487,"dataGaName":488,"dataGaLocation":597},{"text":490,"config":749},{"href":492,"dataGaName":493,"dataGaLocation":597},{"text":751,"config":752},"Dichiarazione di trasparenza sulla schiavitù moderna",{"href":753,"dataGaName":754,"dataGaLocation":597},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":495,"links":756},[757,760,762,764,769,774,779],{"text":758,"config":759},"Contatta un esperto",{"href":176,"dataGaName":177,"dataGaLocation":597},{"text":504,"config":761},{"href":506,"dataGaName":507,"dataGaLocation":597},{"text":509,"config":763},{"href":511,"dataGaName":512,"dataGaLocation":597},{"text":765,"config":766},"Stato",{"href":767,"dataGaName":768,"dataGaLocation":597},"https://status.gitlab.com/","status",{"text":770,"config":771},"Termini di utilizzo",{"href":772,"dataGaName":773,"dataGaLocation":597},"/terms/","terms of use",{"text":775,"config":776},"Informativa sulla privacy",{"href":777,"dataGaName":778,"dataGaLocation":597},"/it-it/privacy/","privacy statement",{"text":780,"config":781},"Preferenze dei cookie",{"dataGaName":782,"dataGaLocation":597,"id":783,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":785},[786,788,790],{"text":770,"config":787},{"href":772,"dataGaName":773,"dataGaLocation":597},{"text":775,"config":789},{"href":777,"dataGaName":778,"dataGaLocation":597},{"text":780,"config":791},{"dataGaName":782,"dataGaLocation":597,"id":783,"isOneTrustButton":12},"content:shared:it-it:main-footer.yml","Main Footer","shared/it-it/main-footer.yml","shared/it-it/main-footer",{"_path":797,"_dir":161,"_draft":6,"_partial":6,"_locale":7,"header":798,"eyebrow":799,"blurb":800,"button":801,"secondaryButton":805,"_id":807,"_type":154,"title":808,"_source":155,"_file":809,"_stem":810,"_extension":158},"/shared/it-it/next-steps","Inizia a distribuire software migliori più velocemente","Oltre il 50% delle società Fortune 100 si affida a GitLab","Scopri cosa può fare il tuo team grazie a una\n\n\npiattaforma DevSecOps intelligente.\n",{"text":169,"config":802},{"href":803,"dataGaName":172,"dataGaLocation":804},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":174,"config":806},{"href":176,"dataGaName":177,"dataGaLocation":804},"content:shared:it-it:next-steps.yml","Next Steps","shared/it-it/next-steps.yml","shared/it-it/next-steps",1753475484125]