1"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[30259],{4097:e=>{e.exports=JSON.parse('{"permalink":"/note/blog/git","source":"@site/blog/git.md","title":"git","description":"git self hosted, tool","date":"2023-11-28T00:00:00.000Z","tags":[{"inline":true,"label":"git","permalink":"/note/blog/tags/git"}],"readingTime":0.66,"hasTruncateMarker":true,"authors":[],"frontMatter":{"date":"2023-11-28T00:00:00.000Z","tags":["git"]},"unlisted":false,"prevItem":{"title":"Disk Usage Tool","permalink":"/note/blog/Disk Usage Tool"},"nextItem":{"title":"musl vs glibc","permalink":"/note/blog/musl vs glibc"}}')},27050:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var l=n(4097),t=n(74848),s=n(28453);const r={date:new Date("2023-11-28T00:00:00.000Z"),tags:["git"]},o="git",d={authorsImageUrls:[]},c=[{value:"Self hosted <code>git</code> service",id:"self-hosted-git-service",level:2},{value:"gitlab",id:"gitlab",level:3},{value:"Gogs",id:"gogs",level:3},{value:"Gitea",id:"gitea",level:3},{value:"Forgejo",id:"forgejo",level:3},{value:"OneDev",id:"onedev",level:3},{value:"<code>git</code> tool",id:"git-tool",level:2},{value:"<code>lazygit</code>",id:"lazygit",level:3},{value:"<code>gitui</code>",id:"gitui",level:3}];function h(e){const i={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.code,{children:"git"})," self hosted, tool"]}),"\n",(0,t.jsxs)(i.h2,{id:"self-hosted-git-service",children:["Self hosted ",(0,t.jsx)(i.code,{children:"git"})," service"]}),"\n",(0,t.jsx)(i.h3,{id:"gitlab",children:(0,t.jsx)(i.a,{href:"https://gitlab.com/",children:"gitlab"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Written in Ruby"}),"\n",(0,t.jsx)(i.li,{children:"More resource needed"}),"\n",(0,t.jsx)(i.li,{children:"Community Edition under MIT license"}),"\n",(0,t.jsx)(i.li,{children:"Enterprise Edition based on Community Edition"}),"\n",(0,t.jsx)(i.li,{children:"Popular"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"gogs",children:(0,t.jsx)(i.a,{href:"https://github.com/gogs/gogs",children:"Gogs"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Written in Go"}),"\n",(0,t.jsx)(i.li,{children:"Lightweight"}),"\n",(0,t.jsx)(i.li,{children:"Less resource needed"}),"\n",(0,t.jsx)(i.li,{children:"MIT license"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"gitea",children:(0,t.jsx)(i.a,{href:"https://about.gitea.com/",children:"Gitea"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:["Fork of ",(0,t.jsx)(i.a,{href:"#gogs",children:"Gogs"})]}),"\n",(0,t.jsx)(i.li,{children:"Written in Go"}),"\n",(0,t.jsx)(i.li,{children:"Less resource needed"}),"\n",(0,t.jsx)(i.li,{children:"MIT license"}),"\n",(0,t.jsx)(i.li,{children:"Owned by for profit company"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"forgejo",children:(0,t.jsx)(i.a,{href:"https://forgejo.org/",children:"Forgejo"})}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.strong,{children:"Recommended"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:["Fork of ",(0,t.jsx)(i.a,{href:"#gitea",children:"Gitea"})]}),"\n",(0,t.jsx)(i.li,{children:"Written in Go"}),"\n",(0,t.jsx)(i.li,{children:"LightWeight"}),"\n",(0,t.jsx)(i.li,{children:"MIT license"}),"\n",(0,t.jsx)(i.li,{children:"Active develop by community"}),"\n",(0,t.jsx)(i.li,{children:"No Windows build yet (2023)"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"onedev",children:(0,t.jsx)(i.a,{href:"https://onedev.io/",children:"OneDev"})}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Written in Java"}),"\n",(0,t.jsx)(i.li,{children:"EE module under Source Available license"}),"\n",(0,t.jsx)(i.li,{children:"Non-EE files under MIT license"}),"\n"]}),"\n",(0,t.jsxs)(i.h2,{id:"git-tool",children:[(0,t.jsx)(i.code,{children:"git"})," tool"]}),"\n",(0,t.jsx)(i.h3,{id:"lazygit",children:(0,t.jsx)(i.a,{href:"https://github.com/jesseduffield/lazygit",children:(0,t.jsx)(i.code,{children:"lazygit"})})}),"\n",(0,t.jsx)(i.p,{children:"Text UI"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Written in Go"}),"\n",(0,t.jsx)(i.li,{children:"MIT license"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"gitui",children:(0,t.jsx)(i.a,{href:"https://github.com/extrawurst/gitui",children:(0,t.jsx)(i.co
1de,{children:"gitui"})})}),"\n",(0,t.jsx)(i.p,{children:"Text UI"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Written in Go"}),"\n",(0,t.jsx)(i.li,{children:"MIT license"}),"\n"]})]})}function a(e={}){const{wrapper:i}={...(0,s.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},28453:(e,i,n)=>{n.d(i,{R:()=>r,x:()=>o});var l=n(96540);const t={},s=l.createContext(t);function r(e){const i=l.useContext(s);return l.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),l.createElement(s.Provider,{value:i},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.