归档:构建服务 Git
(重定向自 )
| 本文关于开放构建服务的文档已过时! 您可以在 https://github.com/openSUSE/open-build-service/blob/master/CONTRIBUTING.md 上找到最新的信息 |
获取构建服务代码
从 github 部署所需的部分
构建服务托管在 openSUSE github 项目 中的多个仓库中
服务器组件
附加仓库
以下部分并非 OBS 的官方组成部分,但对于某些任务可能有所帮助
- yabsc -- 一个 GUI 客户端,重用 osc 库。
检出
可以通过以下命令由任何人进行克隆。将 $MODULE 替换为 osc、build 或 build-service 等
git clone git://github.com/openSUSE/$MOBDULE.git
其中一些仓库包含进一步的仓库,因此您还应该运行
git submodule init git submodule update
在拉取的目录内。
客户端组件,如 osc 或 build,在拉取后可以直接工作。要运行服务器组件,您需要继续阅读。
仅运行 webui
此 教程 逐步解释如何检出 webui 代码,如何使其在本地运行,以及如何将源代码更改贡献回主项目。
运行整个服务器
运行后端
运行 api
开发者示例 git 命令
配置设置
一些有用的设置,将被写入您的 ~/.gitconfig
git config --global branch.master.merge refs/heads/master git config --global branch.master.remote origin
git config --global user.name "FirstName LastName" git config --global user.email "user@example.com"
示例命令
一些用于处理代码的示例命令。即使您没有推送权限,本地提交也可以工作。
只读检出
git clone git://github.com/openSUSE/osc.git cd osc ./osc-wrapper.py -h
读/写检出(需要上传 ssh 密钥)
git clone git@github.com/openSUSE/osc.git
Update
git pull
提交到您的仓库
git commit -a # -a for all files
上传您的更改(需要远程写入权限)
git push
显示上次提交
git show HEAD
显示所有分支
coolo@desdemona#osc>git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/jw remotes/origin/master
检出分支(第一次)
# note that this is all locally, no server contacted git checkout -t origin/jw
切换分支
# all inplace git checkout master git checkout jw
合并另一个分支(简短方式)
git merge origin/master
合并另一个分支(长方式)
coolo@desdemona#osc>git merge origin/jw Auto-merging NEWS CONFLICT (content): Merge conflict in NEWS coolo@desdemona#osc>eclipse NEWS coolo@desdemona#osc>git diff NEWS # see diffs against merge point coolo@desdemona#osc>git add NEWS # mark as resolved coolo@desdemona#osc>git commit # commit manual merge
请注意“origin”,每个远程仓库都有一个名称。可以有多个。由于您可以克隆仓库,您也可以注册多个“clone”仓库,然后在您的仓库中本地合并更改并将其推送到第 3 个仓库 - 正如我在开头所说:git 功能强大且复杂。因此,从简单的东西开始,并熟悉这些命令。您也可以在 gitorious 上克隆仓库,并随意在这些克隆中进行操作 - 如果出现问题,可以在一秒钟内丢弃它们:)
git diff 问题
- 我如何确保我不会撤销 origin/master 中的修复?
- 除非您明确执行 git revert,否则不会发生。
- 当前分支头与上次合并的差异点
- git diff abcdef1234 使用 git log 中的上次合并的提交 ID
- 当前分支头与 origin/master 头部的差异点
- git diff abcdef1234..origin/master 使用 git log 中的上次合并的提交 ID
- 当前分支头与当前 origin/master 头部的差异
- 只需 git diff origin/master
: