一、环境配置
GitBlit需要使用Java环境运行,因此需要现在树莓派上安装java环境
sudo apt update
sudo apt install default-jdk
我直接安装的默认java jdk,默认的装的是OpenJDK 11 JDK,安装好后,运行
java --version
若能显示以下信息,表示安装成功
pi@raspberrypi:~/gitblit $ java --version
openjdk 11.0.14 2022-01-18
OpenJDK Runtime Environment (build 11.0.14+9-post-Raspbian-1deb10u1)
OpenJDK Server VM (build 11.0.14+9-post-Raspbian-1deb10u1, mixed mode)
然后再运行
javac
若能显示以下内容,表示java环境可用
pi@raspberrypi:~/gitblit $ javac
用法: javac <options> <source files>
其中, 可能的选项包括:
@<filename> 从文件读取选项和文件名
-Akey[=value] 传递给注释处理程序的选项
--add-modules <模块>(,<模块>)*
除了初始模块之外要解析的根模块; 如果 <module>
为 ALL-MODULE-PATH, 则为模块路径中的所有模块。
--boot-class-path <path>, -bootclasspath <path>
覆盖引导类文件的位置
--class-path <path>, -classpath <path>, -cp <path>
指定查找用户类文件和注释处理程序的位置
-d <directory> 指定放置生成的类文件的位置
-deprecation 输出使用已过时的 API 的源位置
--enable-preview 启用预览语言功能。要与 -source 或 --release 一起使用。
-encoding <encoding> 指定源文件使用的字符编码
-endorseddirs <dirs> 覆盖签名的标准路径的位置
-extdirs <dirs> 覆盖所安装扩展的位置
-g 生成所有调试信息
-g:{lines,vars,source} 只生成某些调试信息
-g:none 不生成任何调试信息
-h <directory> 指定放置生成的本机标头文件的位置
--help, -help, -? 输出此帮助消息
--help-extra, -X 输出额外选项的帮助
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-J<flag> 直接将 <标记> 传递给运行时系统
--limit-modules <模块>(,<模块>)*
限制可观察模块的领域
--module <module-name>, -m <module-name>
只编译指定的模块, 请检查时间戳
--module-path <path>, -p <path>
指定查找应用程序模块的位置
--module-source-path <module-source-path>
指定查找多个模块的输入源文件的位置
--module-version <版本> 指定正在编译的模块版本
-nowarn 不生成任何警告
-parameters 生成元数据以用于方法参数的反射
-proc:{none,only} 控制是否执行注释处理和/或编译。
-processor <class1>[,<class2>,<class3>...]
要运行的注释处理程序的名称; 绕过默认的搜索进程
--processor-module-path <path>
指定查找注释处理程序的模块路径
--processor-path <path>, -processorpath <path>
指定查找注释处理程序的位置
-profile <profile> 请确保使用的 API 在指定的配置文件中可用
--release <release> 针对特定 VM 版本进行编译。支持的目标: 6, 7, 8, 9, 10, 11
-s <directory> 指定放置生成的源文件的位置
-source <release> 提供与指定发行版的源兼容性
--source-path <path>, -sourcepath <path>
指定查找输入源文件的位置
--system <jdk>|none 覆盖系统模块位置
-target <release> 生成特定 VM 版本的类文件
--upgrade-module-path <path>
覆盖可升级模块位置
-verbose 输出有关编译器正在执行的操作的消息
--version, -version 版本信息
-Werror 出现警告时终止编译
二、创建GitBlit目录并下载GitBlit
我将GitBlit放到了树莓派的/home/pi/gitblit目录中,即pi用户的根目录
- 创建GitBlit目录并进入目录
mkdir /home/pi/gitblit
cd /home/pi/gitblit
- 下载gitblit
sudo wget https://github.com/gitblit/gitblit/releases/download/v1.9.2/gitblit-1.9.2.tar.gz
sudo tar -zxvf gitblit-1.9.2.tar.gz
三、配置GitBlit
gitblit解压后,对GitBlit进行配置,修改gitblit-1.9.2/data/gitblit.properties文件
sudo nano /home/pi/gitblit/gitblit-1.9.2/data/gitblit.properties
修改http端口、设置版本库路径、
server.httpPort = 16001
git.repositoriesFolder = ${baseFolder}/git-data
四、运行&停止
运行GitBlit可以直接运行gitblit-1.9.2目录下的gitblit.sh文件
sudo ./gitblit.sh
但是此方法运行关闭会话框后,就会自动结束,因此,修改下gitblit.sh,使其能后台启动,打开文件,修改为以下内容
nohup java -cp "gitblit.jar:ext/*" com.gitblit.GitBlitServer --baseFolder data &
停止GitBlit很简单,运行gitblit-stop.sh文件即可
sudo ./gitblit-stop.sh
五、简单使用
运行成功后,在网页输入IP:16001访问GitBlit页面,用户名/密码使用默认的admin/admin登录,然后可以自己修改密码或创建用户。我是新创建了个用户,用来添加管理版本库,保留了admin的原有权限。
首次登录是没有版本库的,因此点击创建版本库创建一个空的版本库,然后就可以看到一个URL链接,用此链接和本地关联改版本库即可(若看到的只是r权限,请修改该版本库的权限,赋予读写所有权限),相关操作如下,我这里关闭了https和ssh,因此只是用http
# 配置邮箱
git config --global user.email ""
# 配置名称
git config --global user.name ""
# 创建
git init
# 添加远程存储库
git remote add origin http://jayhgq@192.168.31.33:5903/r/XMLYDownloader.git
# 抓取
git fetch http://jayhgq@192.168.31.33:5903/r/XMLYDownloader.git
git fetch origin
# 暂存文件
git add README.md
# 提交
git commit -m "提交README.md"
# 推送
git push origin master
更多Git的使用可参考git官网说明https://git-scm.com/book/zh/v2
六、遇到的问题–以下是个人使用的问题记录(可略过)
- 使用VSCode添加远程库后,不让输入密码,直接提示登录失败拒绝访问
使用下面命令查看credential.helper所在的文件目录,删除credential字段
git config --show-origin --get credential.helper
然后在使用下面命令将credential.helper设置为store
git config credential.helper store
除了store这个选项还可以是设置cache、osxkeychain、manager,区别如下
可选凭证存储模式
- “cache” 模式
会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。 - “store” 模式
会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下。 - “osxkeychain” 模式
如果你使用的是 Mac,Git 还有一种 “osxkeychain” 模式,它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。 - “manager” 模式
如果你使用的是 Windows,你可以安装一个叫做 “Git Credential Manager for Windows” 的辅助工具。 这和上面说的 “osxkeychain” 十分类似,但是是使用 Windows Credential Store 来控制敏感信息。
推荐使用凭证存储模式 “manager”,在这里对比 “wincred” 和 "manager"的区别
相同点:都会将用户信息存储到Windows凭据管理器中
不同点:Windows凭据管理器中用户信息是否加密
“wincred” 模式下的用户信息展示如下
Internet 地址或网络地址:git:https://用户名@github.com;
用户名:真实用户名
“manager” 模式下的用户信息展示如下
Internet 地址或网络地址:git:https://github.com;
用户名:PersonalAccessToken
很明显,在用户信息暴露的情况下,其他人很容易通过 https://用户名@http://github.com 访问到路径对应的项目,为了避免这种风险的存在,我们可以安装 “Git Credential Manager for Windows” 的辅助工具。