• [问题求助] 【gitlab】希望增加gitlab的镜像源
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [应用安全] 【漏洞通告】GitLab 远程代码执行漏洞 CVE-2022-2185
    漏洞名称:GitLab 远程代码执行漏洞组件名称:GitLab影响范围:14.0 ≤ GitLab CE/EE < 14.10.515.0 ≤ GitLab CE/EE < 15.0.415.1 ≤  GitLab CE/EE < 15.1.1漏洞类型:远程代码执行利用条件:1、用户认证:需要用户认证2、前置条件:未知3、触发方式:远程综合评价:<综合评定利用难度>:未知。<综合评定威胁等级>:严重,能造成远程代码执行。漏洞分析:组件介绍:GitLab 是美国 GitLab 公司的一款使用 Ruby on Rails 开发的、自托管的、Git(版本控制系统)项目仓库应用程序。该程序可用于查阅项目的文件内容、提交历史、Bug 列表等。漏洞简介:近日,监测到一则 GitLab组件存在远程代码执行漏洞的信息,漏洞编号:CVE-2022-2185,漏洞威胁等级:严重。该漏洞是由于对授权用户导入的项目检测不完善,攻击者可利用该漏洞获得权限的情况下,构造恶意数据执行远程代码执行攻击,最终获取服务器最高权限。影响范围目前受影响的 GitLab 版本:14.0 ≤ GitLab CE/EE < 14.10.515.0 ≤ GitLab CE/EE < 15.0.415.1 ≤  GitLab CE/EE < 15.1.1解决方案:1.如何检测组件系统版本右上角找到 help,点击选择栏中的“帮助”,即可看到版本信息。2.官方修复建议当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:https://packages.GitLab.com/GitLab/
  • [技术干货] git常用操作
    1.git clone 获取远程仓库2.git  branch获取分支3.git pull 拉取数据4.git push 提交数据5.git add . 增加数据6.git commit -m '注释' 
  • [技术干货] gitignore不生效解决方案
    it rm -r --cached .git add .git commit -m 'update .gitignore'
  • [技术干货] 败给 VS Code,GitHub 被微软收购的第四年,“杀死”了代码编辑器 Atom[转载]
    GitHub 重磅宣布,计划将于 2022 年 12 月 15 日关闭 Atom。Atom 是 GitHub 于 2011 年专门为程序员推出的一个跨平台文本编辑器。GitHub 的初心是为开发者提供一个可深度定制但又易于使用的文本编辑器,以便让更多人使用。这一开源的文本编辑器影响了许多广泛使用的商业应用程序,例如微软的 Visual Studio Code、Slack 和 GitHub Desktop。然而却即将迎来仅剩6个月的“退役”倒计时。图源GitHubGitHub将“赌注”押在了云端GitHub 表示,这样做是为了发展专注于基于云的软件。“虽然发展软件创建者社区的目标仍然存在,但我们决定让 Atom 退役,以进一步履行我们通过 Visual Studio Code 和 GitHub Codespaces(一个集成了 Visual Studio Code 的云端开发环境)将反应迅速且可靠的软件带到云端的承诺”,GitHub 于本周三解释道。2018 年 6 月,当微软收购 GitHub 时,时任 CEO Nat Friedman 向 GitHub 社区保证,Atom 还活着并且活得很好!Friedman 曾表示:“Atom 是一个出色的编辑器,它拥有健康的社区、忠实的粉丝、出色的设计,以及对实时协作也在进行尝试。在微软,我们已经使用了从 Atom 到 VS Code 再到 Sublime 到 Vim 的所有编辑器,我们希望开发人员可以在 GitHub 上使用他们喜欢的任何编辑器。因此,我们将继续开发和支持 Atom 和 VS Code。”然而,经过四年的发展,Atom 陷入了停滞。据 GitHub 称,除了维护和安全更新外,该项目几年来没有重大的功能开发。随着这些年新的基于云的工具的出现和发展,Atom 社区的参与度已经明显下降了。本地安装软件的业务现在看起来不如基于云的应用程序有吸引力。GitHub 发言人曾表示:“我们希望在未来几年专注投资于我们核心的“赌注”,即专注于增强开发人员在云端中的体验。还有许多强大的 Atom 替代品可以满足各种需求,VS Code 也已经获得了巨大的市场份额,因此我们对这种变化充满信心。”Atom退役后将会如何?谈及 Atom 退役后对 GitHub 开发者生态带来的影响,GitHub 发言人回应道:“这应该没有什么影响。GitHub 的 API 将继续得到支持,并使开发者能够在数千种其他产品中与 GitHub 集成。我们还维护自己的应用程序套件,包括 GitHub Desktop、GitHub Mobile 和 GitHub CLI。”Atom 是 Electron 框架的基础。通过 Electron 框架仍可以继续感受到 Atom 的存在。Electron.js 也仍然是 Discord、Skype、Slack、Trello 和 Visual Studio Code 等应用程序的基础。但是技术会发生变化。微软此前曾表示,它打算在 Teams 中脱离 Electron。其他跨平台框架,如 Flutter、Tauri 或微软最近宣布的 .NET Multi-platform App UI (.NET MAUI)可能会受到关注。考虑到时间和精力方面,GitHub 给用户和贡献者留了 6 个月的迁移时间,并计划在接下来的时间里继续将这一决策通知落实到位。在 2022 年 12 月 15 日,其将归档 atom/atom 资源库和 Atom 组织中剩余的所有其他资源库。尽管如此,Atom 看起来可能会在 2022 年 12 月 15 日这一退役日期之后再徘徊一阵子。因为即便 GitHub 打算归档 Atom 存储库,但代码是开源的,任何想要支持该项目的人都可以使用。参考资料:https://github.blog/2022-06-08-sunsetting-atom/https://www.theregister.com/2022/06/08/github_atom_dropped/原文链接:https://blog.csdn.net/csdnopensource/article/details/125203360
  • [交流吐槽] GIT提交的任务还是完成不了啊
    GIT提交的任务还是完成不了啊,有两周了吧,试了各种办法提交都 不行
  • [技术干货] Git 常用操作汇总[转载]
    一、创建 Git 仓库打开需要创建仓库的位置,打开Git命令界面或Terminal终端输入git init创建仓库。创建完成后得到提示Initialized empty Git repository in /Users/huaqiangsun/Git/.git/ 已初始化空的Git仓库在当前目录中,同时可以看到目录中多出来.git文件夹(一般为隐藏文件夹,Mac下可通过shift + cmd + . 组合快捷键查看隐藏文件)。二、查看仓库文件状态提起Git,常常会提到工作区、暂存区、版本库概念,这是很通用的说法,其实工作区一般就是指我们能看到的文件、本地操作文件所在的目录,我们正常编写的代码文件、管理的资源文件都是在工作区里操作,这里的文件又细分为受版本控制的文件和不受版本控制的文件。提到暂存区,就和index文件建立了联系,工作区的新文件和已经修改受版本控制的文件,使用 git add file_name 就可以添加到暂存区,相当于登记报个名,以后提交到版本库的时候会把这些登记的文件都带上,实际上执行了 git add 命令的文件都生成了对应的 object 对象,放在.git/objects目录下,状态变为 staged, 当提交到版本库时,分支会引用这些对象。版本库就是文件修改的目的地了,最终的修改会提交到版本库,这时提交的文件状态变成 committed,其实也是一种 unmodified 状态,版本库会记录你的每一次提交,可以追溯你每一次修改的内容。文件状态通常可以分为:不受版本控制的 untracked 状态;受版本控制并且已修改的 modified 状态;受版本控制已修改并提交到暂存区的 staged 状态;从暂存区已经提交到本地仓库的 committed 状态;提交到本地仓库未修改或者从远程仓库克隆下来的 unmodified 状态;使用git status可以看到当前仓库的文件修改和未提交文件情况。其中,Changes to be committed为暂存区已存在,需要进行提交进仓库的文件;Changes not staged for commit为文件被操作尚未提交至暂存区的文件,此类文件需要使用add将其添加至缓存区再提交进仓库;Untracked files为未入暂存区文件;当修改后的文件添加至暂存区后,在提交之前再次进行修改后,非暂存区会再次出现该文件,需再次add添加入暂存区,否则直接commit后仓库中的文件不会包含二次修改的内容。总结git status 只能查看未传送提交的次数,不能查看具体文件信息;git cherry -v只能查看未传送提交的描述/说明;git log master ^origin/master则可以查看未传送提交的详细信息;三、向暂存区中添加文件使用git add [fileName ...]用于将文件添加至暂存区中。若未提示信息则表示文件添加成功。添加文件需要填写正确的文件路径,若需要添加多个文件使用空格分隔。四、提交暂存区文件使用git commit -m "description"用于将已添加到暂存区的文件进行提交,每次提交可提交多个文件。五、从仓库中移除文件当从磁盘删除已提交给仓库中的文件时,由于仓库缓存中还存在该文件,所以使用git rm [fileName]删除缓存中的文件,再提交后该文件就不再纳入版本管理。若当前操作为误操作,可以通过回滚操作找回文件。如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f配参。若由于误操作将一些非必要文件提交至仓库,可以使用--cached,只删除仓库中的记录并不从磁盘上删除。git rm 命令后面可以列出文件或者目录的名字,也可以使用 glob 模式。例如:git rm log/\*.log。注意星号 * 之前的反斜杠 \, 因为 Git 有自己的文件模式扩展匹配方式,所以不用 shell 来帮忙展开。 此命令删除 log/ 目录下扩展名为 .log 的所有文件。六、设置忽略文件对于一些日志文件、临时文件以及一些软件生成的配置或输出文件并不需要进行文件管理,所以可以创建一个.gitignore文件将需要忽略的文件名称或表达式写入.gitignore文件,以实现忽略文件的目的。文件 .gitignore 格式规范如下:所有空行或者以 # 开头的行都会被 Git 忽略。可以使用标准 glob 模式匹配,它会递归地应用在整个工作区中。匹配模式可以以(/)开头防止递归。匹配模式可以以(/)结尾指定目录。要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。git同样支持Glob模式,Glob模式为Shell中简化的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。.gitignore 文件生效步骤如下:git status --ignored // 查看状态,验证是否已包括忽略的文件git rm -r --cached . // 清除缓存,-r表示递归删除git status --ignored // 查看具体效果git add . // 重新trace filegit commit -m "update .gitignore" // 提交和注释七、查看文件修改内容使用git status只能查看每个文件的修改状态,但是无法看到每个文件的内容有哪些被修改,所以可以使用git diff查看所有追踪文件的修改对比。需要注意的是,git diff是查看未暂存的文件中被修改的内容,当将该文件添加入暂存区后,就无法再通过git diff查看修改内容,需要使用git diff --cached。八、移动文件当需要重命名文件时,可以使用git mv [oldFileName] [new FileName]。Git对于重命名操作会分为三步进行,第一步首先重命名文件,然后再从仓库中删除原有的文件,最后将新文件添加进暂存区等待提交。若通过软件进行批量修改文件时,也要按照该流程先删除原文件再添加新文件。九、撤销操作当由于一些操作失误提交或修改了文件内容时,可以通过Git回滚操作,回滚到修改之前的状态。回忆下前面提到的文件状态,文件状态通常可以分为:不受版本控制的 untracked 状态;受版本控制并且已修改的 modified 状态;受版本控制已修改并提交到暂存区的 staged 状态;从暂存区已经提交到本地仓库的 committed 状态;提交到本地仓库未修改或者从远程仓库克隆下来的 unmodified 状态;9.1 撤销暂存区文件使用git restore --staged [fileName]或git reset HEAD [fileName]可以将暂存区文件恢复。说明:git restore命令是 Git 2.23 版本之后新加的,用来分担 git checkout 命令的功能,通过用暂存区或者版本库中的文件覆盖本地文件的修改,以达到回退修改的目的,同时也可以使用版本库中的文件覆盖暂存区的文件,达到回退git add命令的目的。!!注意,这个操作不会影响分支记录,就是相当于之前的 git checkout 命令重新检出一份文件来覆盖本地的修改。git reset 其实就是用来设置分支的头部指向,当进行了一系列的提交之后,忽然发现最近的几次提交有问题,想从提交记录中删除,这是就会用到 git reset 命令,这个命令后面跟 commit id,表示当前分支回退到某个 commit id 对应的状态,之后的日志记录被删除,工作区中的文件状态根据参数的不同会恢复到不同的状态。--soft: 被回退的那些版本的修改会被放在暂存区,可以再次提交。--mixed: 默认选项,被回退的那些版本的修改会放在工作目录,可以先加到暂存区,然后再提交。--hard: 被回退的那些版本的修改会直接舍弃,就像它们没有来过一样。使用 git rest HEAD file_name 命令就可以将一个文件回退到 HEAD 指向版本所对应的状态,其实就是当前版本库中的状态,也就相当于还原了本地的修改。对于工作区中未加到暂存区和版本库的文件,执行了 git add 操作之后可通过如下方法还原:git rm --cached newfilegit restore --staged newfilegit reset HEAD newfile注:使用后两个命令的时候不能是版本库的第一个文件。9.2 撤销对文件的修改使用git checkout -- [fileName]可以将该文件回滚到上一次提交的状态。!注:记得git checkout -- <file>是一个危险的命令。 你对那个文件在本地的任何修改都会消失。Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。声明:由于没有添加到暂存区的文件无法被追踪,所以它的任何修改是没有办法回退!只能通过本地文件撤销操作进行。十、查看操作历史如果想要查看某个项目中所有提交信息,可以使用git log打印所有参与者的提交记录。每条记录都会显示提交的SHA-1 校验,作者名字和作者邮箱以及提交时间并按提交时间倒序排列。除了简单的git log外,还可以添加参数用于筛选和格式化输出信息:-p --patch:它会显示每次提交所引入的差异。 也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交。--stat:在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 在每次提交的最后还有一个总结。--pretty:这个选项有一些内建的子选项供你使用。 比如 oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用。 另外还有 short,full 和 fuller 选项,它们展示信息的格式基本一致,但是详尽程度不一;使用formart可以自定义打印的格式,常用格式信息如下:示例 10.1 将日志信息显示在一行上$ git log --pretty=oneline示例 10.2 以 short 格式输出仓库修改信息$ git log --pretty=short示例 10.3 以 full 格式输出仓库修改信息$ git log --pretty=full示例 10.4 以 fuller 格式输出仓库修改信息$ git log --pretty=fuller修改文件人员与提交文件人员可以不是同一个人,所以在查询日志时会区分修改人与提交人。十一、拓展阅读《Git进阶(一):git管理文件之后文件颜色的含义》《Git进阶(二):git revert 用法》《Git进阶(三):webstorm的git切换分支》《Git进阶(四):Git命令图解》《Git进阶(五):git分支管理策略》《Git进阶(六):git 刷新分支、修改本地和远程分支名称》《Git进阶(七): 打标签》《Git进阶(八):git stash和git add》《Git进阶(九):Git命令实现提交指定文件》《Git进阶(十):Git命令实现修改指定文件名称》链接:https://bbs.huaweicloud.com/blogs/352645
  • [openEuler] 【Compass-CI】【repo监控】本地部署后git-mirror功能异常
    按照https://gitee.com/openeuler/compass-ci/blob/master/sparrow/local/test-oss-project.md添加sysbench后,发现如下问题:1.docker logs -f sub-fluentd日志有git fetch fail报错2.没有监控到sysbench的pr提交,日志中也没有相关打印3.手动提交jobs后登录测试环境失败,报错如下:
  • [知识分享] 聊聊数仓中TPCD-DS&amp;TPC;-H与查询性能的那些事儿
    本文分享自华为云社区《[GaussDB(DWS) 《DWS之TPCD-DS&TPC-H与查询性能的那些事儿](https://bbs.huaweicloud.com/blogs/337183?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=ei&utm_content=content)》》,作者: 一剑战八荒 。 # 1 综述 本文目标在于,详细讲述使用GaussDB(DWS)时,如何使用TPC-DS/TPC-H等标准数据模型,获取DWS的查询性能数据。主要包括,整体流程概述,DWS集群和ECS弹性云服务器环境准备,TPC-DS/TPC-H造数,建表与数据导入,执行查询与结果收集四个章节。 **受限于编辑器的显示,为了更好地阅读效果,烦请下载附件的原版文档查看,获取相关脚本。** 其中涉及的很多操作细节无法一一展开叙述,以梳理和展示整体的逻辑为主。其中主要涉及的工具OBS/GDS/JDBC copy后续会单独开篇叙述。若有无法解决的疑问,欢迎评论留言。 # 2 整体流程概述 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174495837847525.png) # 3 DWS集群和ECS弹性云服务器环境准备 ## 3.1 创建ECS弹性云服务器 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174538674201678.png) ## 3.2 创建DWS数据仓库 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174551951568533.png) # 4 TPC-DS/TPC-H造数 ## 4.1 准备数据生成工具 1. 远程连接ECS弹性云 2. 执行 yum install git,安装git 3. 执行 yum install gcc,安装gcc 4. 执行 mkdir –p /data1/script/tpcds-kit/tpcds1000X ; mkdir –p /data1/script/tpch-kit/tpch100X 创建tpc-ds或者tpc-h的存放目录 5. TPC-DS造数工具dsdgen请从官网获取最新版本。 通过FTP或者OBS服务上传到ECS的 /data1/script/tpcds-kit;(OBS使用方法详见附录1) TPC-H造数工具可直接git clone下载。 cd /data1/script/tpch-kit; git clone https://github.com/gregrahn/tpch-kit.git 1. 解压tpch的包,进入dbgen目录,make 编译对应的造数工具dbgen 2. 解压tpcds的包,进入tools目录,make 编译对应的造数工具dsdgen ## 4.2 生成数据文件 - **生成TPCH数据文件** 进入dbgen目录后,执行./dbgen –s 100 > ./dbgen_100.log 2>&1 &,下发生成100Xtpch数据的命令到后台执行 可以通过du –sh dbgen/*.tbl,判断数据文件的生成进度。100Xtpch数据文件总大小约107GB, 也可以通过ps ux|grep dbgen,查看生成数据文件的进程是否退出 - **生成TPCDS数据文件** 因为tpcds1000X的数据,单个标的数据文件较大,我们采取分片生成的策略。 进入tools目录后,执行 `for c in {1..10};do (./dsdgen –sc 1000 –parallel 10 –child ${c} –dir /data1/script/tpcdsk-kit/tpcds1000X > /dev/null 2>&1 &);done` 其中, -sc 指定数据规模 -parallel 指定分片数 -child 指定当前是生成分片中的第几片 -dir 指定生成数据文件存放的目录 可以通过du –sh tpcds100X/*.dat,判断数据文件的生成进度。1000Xtpcds数据文件总大小约920GB, 也可以通过ps ux|grep dsdgen,查看生成数据文件的进程是否退出。 # 5 建表与数据导入 ## 5.1 GDS方式导入 5.1.1 从数据仓库服务的连接管理页面下载ECS对应版本的gsql客户端,通过ftp或obs上传到ECS上;(OBS使用方法详见附录1) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174644255237707.png) 5.1.2 在ECS上部署GDS,详见华为云官方资料https://support.huaweicloud.com/tg-dws/dws_07_0759.html 5.1.3 在ECS上通过gsql工具连接集群,连接群集群所需的ip和端口号信息,可以从数据仓库服务的连接管理页面获取 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174655302722504.png) 5.1.4 在ECS上使用gsql连接集群,创建tpch/tpcds的内表和gds外表。建表语句详见如下sql文件, 5.1.5 在ECS使用gsql连接集群,通过GDS外表,使用insert into [目标表] select * from [目标表外表]的方式导入数据到集群内。 ## 5.2 JDBC copy方式导入 5.2.1 从数据仓库服务的连接管理页面下载ECS对应版本的JDBC驱动,通过ftp或obs上传到ECS上;(OBS使用方法详见附录1) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174684885782914.png) 5.2.2 上传JDBC驱动和copy的java脚本到ECS,此处提供dws_copy.java源码 5.2.3 在ECS上javac编译java文件,然后生成copy编译后源码和JDBC驱动的jar包,Copy.jar。编译和生成jar包详细流程如下图, ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174695340256020.png) 5.2.4 在ECS上java –jar Copy.jar通过JDBC copy数据到集群内。 可执行源码和二次封装的shell JDBC导数执行脚本详见如下压缩包 # 6 执行查询与结果收集 ## 6.1通过编写shell脚本自动化执行查询和结果收集。 脚本压缩包如下,其中包含query.conf和run_query.sh两个文件。 query.conf为集群信息配置文件,包含如下四个变量 db_name=tpcds_test 数据库名称 db_port=6000 数据库端口号 db_user=tpcds_user 数据库用户 user_passwd=Gauss_234 数据库用户密码 编辑query.conf为集群对应的信息后,执行sh run_query.sh即可开始查询执行和结果收集。 注意事项: 1. gsql客户端的使用需要每次连接后,source gsql_env,执行查询脚本前请确认gsql可执行; 2. 每个查询会跑6次,一次收集执行计划,两次预热,三次正式查询,最终结果取后三次查询的平均值; 3. 查询脚本执行后会立即生成query_log_yymmdd_hhmmss名称的目录,其中 exlain_log子目录存放查询计划, pre_warm子目录存放预热执行结果, real_test子目录存放正式查询执行结果, query_result.csv文件,csv格式汇总所有查询的执行结果,csv中结果实例如下图 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/25/1648174728656915687.png) # 7 附录 ## 7.1 华为云OBS官方使用指导 https://support.huaweicloud.com
  • [技术干货] Git分支管理策略
    这篇文章介绍了Git的分支管理策略,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下目录• 一、创建测试项目 • 1、新建GitHub仓库 • 2、将本地仓库项目上传到GitHub • 2.1、初始化本地仓库 • 2.2、把文件添加到暂存区 • 2.3、提交到本地仓库 • 2.4、关联远程GitHub仓库 • 2.5、将本地仓库推送到远程仓库 • 2.6、查看状态 • 二、管理分支 • 1、创建本地仓库新分支 • 2、查看新创建的分支是否成功 • 3、切换分支 • 4、查看当前分支 • 5、将创建的分支推送到远程仓库 • 6、修改文件 • 7、将修改后的文件提交到暂存区 • 8、提交到本地仓库 • 9、推送到远程仓库 • 10、查看文件状态 • 11、合并到master分支 一、创建测试项目1、新建GitHub仓库在GitHub上面新创建一个仓库,用来演示分支管理,如下图所示:点击“Create repository”按钮创建新仓库。2、将本地仓库项目上传到GitHub2.1、初始化本地仓库输入下面命令:1$ git init如下图所示:2.2、把文件添加到暂存区在新创建的本地仓库下面新建一个名为branchdemo.txt的文件,并添加到暂存区,先查看本地仓库文件状态,如下图所示:上图显示新创建的branchdemo.txt文件是未跟踪状态。需要使用git add命令添加到暂存区:2.3、提交到本地仓库将暂存区文件提交到本地仓库,命令:1$ git commit -m "commit file"如下面所示:2.4、关联远程GitHub仓库将本地仓库和远程GitHub的仓库进行关联:2.5、将本地仓库推送到远程仓库将本地项目推送到远程仓库:然后查看GitHub仓库,这时发现GitHub仓库已经有了本地项目:2.6、查看状态输入如下命令:1$ git status如下图所示:二、管理分支1、创建本地仓库新分支创建分支使用下面的命令:1$ git branch "新分支名称"例如:创建一个名为feature的分支,如下图所示:2、查看新创建的分支是否成功使用git branch命令查看所有的分支,如下图所示:可以看到新创建的分支已经成功,"*"号表示当前是在哪个分支。3、切换分支切换分支使用下面的命令:1$ git checkout "分支名称"如下图所示:4、查看当前分支如下图所示:从截图中可以看出:*号是在feature前面,表示现在是在feature分支了。5、将创建的分支推送到远程仓库新创建的本地分支需要推送到远程GitHub的仓库,使用下面的命令:1$ git push origin feature如下图所示:这时查看GitHub分支,会发现多了feature分支:6、修改文件修改branchdemo.txt文件。7、将修改后的文件提交到暂存区如下图所示:8、提交到本地仓库如下图所示:9、推送到远程仓库本地仓库修改后的内容需要推送到远程仓库,输入命令:1$ git push origin feature如下图所示:10、查看文件状态查看文件状态,检查文件是否提交成功,如下图所示:说明已经提交成功。11、合并到master分支合并分支之前先要切换到master分支,如下图所示:切换到master分支以后,在使用merge命令合并到master分支:将本地master分支推送到远程master分支:到此这篇关于Git分支管理策略的文章就介绍到这了。原文链接:https://www.cnblogs.com/dotnet261010/p/10803104.html
  • [区域初赛赛题问题] 请问用git运行.sh出现no target怎么处理?
  • [常见FAQ] 请问用git运行sh文件遇到这种情况怎么办?
  • [区域初赛赛题问题] C++可以复制Github上开源项目的部分库文件到本地源文件中吗
    C++可以复制Github上开源项目的部分库文件到本地源文件中吗?希望通过这种方式使用一些工具方法。
  • [技术干货] Python:Bug 官网不要了,全迁去 GitHub【转载】
    近几年,GitHub 开发者数量逐年上升,仅过去一年 GitHub 的新增用户便有 1600 万人,总用户数更是达到了 7300 万——在开源浪潮席卷全球中,GitHub 无疑成为了许多开发者迈入开源的一个重要途径。Python 开发团队或许正是看中了这一点,才决定将 Python 开发基础设施逐步迁移至 GitHub。目前这项迁移工作已进行近 7 年,但最近卡在了“将 Python 的 Bug 迁移至 GitHub”这一步。一、技术&法律,两面受阻相信大多 Python 程序员应该有所了解:此前,如需进行 Bug 提交、跟踪、修复等操作,一般可前往 Python 官方 Bug 网站(https://bugs.python.org/,可简称为 BPO),而 BPO 所用的 Bug 跟踪器为开源工具 Roundup,即由 Roundup 存储 Bug 相关数据。为了顺利将 Python 的 Bug 迁移至 GitHub,上周 Python 核心开发者 Łukasz Langa 在 Python Discourse 论坛上宣布:Roundup 中的 Bug 数据将全部迁移至 GitHub 的 Python 存储库中,此后用户和核心开发者发现的新 Bug 统一在 GitHub Issue 中处理;同时为避免 BPO 中 URL 失效引发混乱,此后 BPO 将以只读模式继续存在,而当前 BPO 中存在的每个 Bug 都将链接其 Github 地址。“我们希望这将降低新贡献者的门槛,并提供更流畅的用户体验。”Łukasz Langa 解释道。理想很丰满,但现实却很难如意。Łukasz Langa 感慨:“不论在技术还是法律层面上,这都不是一件容易的事。”为此,他自一月份起,就一直与同为 Python 开发者的 Ezio Melotti 共同讨论如何推动本次迁移任务。二、复杂的迁移过程Łukasz Langa 将整个 Bug 迁移工作分为测试反馈阶段及正式迁移阶段:(1)以下为测试反馈阶段时间表:2022 年 2 月 18 日开始为期两周的公众反馈收集期。在此期间,开发者可前往 https://github.com/psf/gh-migration/issues/ 查看 Bug 迁移、测试执行等详细步骤并报告具体问题,还可前往 https://github.com/psf/gh-migration/issues 查看一些迁移 Bug 的示例。2022 年 3 月 4 日,在 Github 的帮助下,使用 10% 的 Bug 执行最终的端到端测试迁移,以此估算迁移所需时间及过程中可能会出现的问题。(2)如果反馈收集过程中没有发现任何问题,最终测试也成功实现,就开启正式迁移阶段:2022 年 3 月 10 日开始迁移。BPO 在欧洲中部时间晚上 9 点(太平洋标准时间下午 12 点)进入只读模式,BPO 中的数据将被导入 Github 上的临时存储库中(此过程预计需要 22 个小时)。2022 年 3 月 11 日,Github 开始将临时存储库中的 Bug 全部转移至 Python 库中。据 Łukasz Langa 预计,正式迁移大概需要花费 3-7 天的时间(具体取决于 Github 的负载),而 Bug 迁移期间,Python 程序员需要注意以下几点:不可在 Github 或 BPO 上创建新 Bug;可以在 Github 上创建新 PR 并与现有 PR 交互,这点不会被影响;可以与 Github 上已迁移的 Bug 进行交互,但尽量不要有破坏性操作(如修改 Bug 标题、编辑评论内容、删除评论、删除标签等),因为数据更改会使迁移团队无法确定迁移是否完全成功。Bug 数据迁移完成后,Python 官方会进行相关通知;但如果迁移无法在 7 天内完成,这项工作将中止并重新启用 BPO。除了以上技术方面的问题,本次迁移任务还牵扯到了部分法律纠纷,主要集中在“Python 软件基金会(PSF)是否可以在不征求用户同意下,将用户生成的内容及其潜在的个人身份信息(PII)从 BPO 移动到 GitHub”。关于这个问题,指导委员会和 PSF 律师确定,此次迁移不需要用户同意:“BPO 和 Github 都是面向公众的系统,用户主动将他们的信息(包括 PII)放在 BPO 系统中,BPO 将根据主动同意存储、公开访问等权限,按需分发这些信息。而我们将后端更改为 Github 并不会修改这些权限,迁移过程中也不会显示之前在 BPO 系统中不允许公开访问的任何新用户信息。”三、放弃 BPO 的理由在看过以上迁移流程后,或许会有人疑惑:既然迁移这样麻烦,继续用 BPO 不“香”吗?针对这类问题,Python 官方早在 2018 年创建的 PEP 581 提案中就明确回应了。该提案中,罗列出了一串 Roundup/BPO 中已知存在的问题:包括核心开发者在内,维护人员不到 5 人;没有可用的 CI(持续集成),现有维护人员的负担太大(需要审查、测试和应用补丁);隔绝了来自外界开发者的大量贡献;UI 需重新设计;易暴露用户的电子邮箱,还经常发垃圾邮件给用户;注册新账户过程繁琐…但这一切问题,可能在部分已习惯 BPO 的开发者眼中,“罪”还不至于被放弃的地步,甚至希望 BPO 维护人员可以就这些问题加以改进。不过,Python 官方坚持认为:“GitHub 中有很多我们喜欢的功能,并且我们相信,创建和维护 GitHub 集成及相关工作量,要远低于加速并维护 Roundup 所需的工作量。”最后,正如上文所提到的迁移流程,按计划自 3 月 10 日起 Bug 迁移将正式开始,届时相关开发者需注意迁移期间可能会带来的影响。原文链接:https://blog.csdn.net/m0_50065287/article/details/123126314
  • [知识分享] 一文带你了解什么是GitOps
    >摘要:说起GitOps,可能很多朋友马上会联想到DevOps,那么GitOps和DevOps之间有什么关系、又有什么区别呢?本文分享自华为云社区[《浅谈GitOps》](https://bbs.huaweicloud.com/blogs/314858?utm_source=csdn&utm_medium=bbs-ex&utm_campaign=paas&utm_content=content),作者: 敏捷的小智。 # GitOps与DevOps 说起GitOps,可能很多朋友马上会联想到DevOps,那么GitOps和DevOps之间有什么关系、又有什么区别呢? # DevOps是一种文化 DevOps包含了Development和Operations两个部分,是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 如今很多团队当中都在践行着DevOps文化,其中核心的一条理念就是“自动化一切可自动化的”。而GitOps,也正是基于这种理念下而诞生的一种持续交付方式。 # GitOps是一种持续交付方式 GitOps核心思想是将应用系统的声明性基础架构和应用程序存放在Git版本库中。 将Git作为交付流水线的核心,每个开发人员都可以提交拉取请求(Pull Request)并使用Git​​来加速和简化应用程序部署和运维任务。通过使用Git,开发人员可以更高效地将注意力集中在创建新功能而不是运维相关任务上(例如,应用系统安装、配置、迁移等)。 同时,GitOps还是一整套CI/CD流水线方案。 在GitOps中可以自由地为流水线的不同部分选择最佳工具。可以从开源生态系统中选择一组工具,也可以从封闭源中选择一组工具,或者根据使用情况,甚至可以将它们组合在一起。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/07/161418frtpybihq7iqbbm9.png) 不过目前业界已经有了不少端到端的DevOps平台,华为云DevCloud就可以一站式端到端地覆盖CI/CD全流程。让开发者不必再纠结于如何选择流水线中的不同部分。从项目管理、代码开发,到编译构建、部署发布、测试运维,软件开发的全生命周期都可以在华为云DevCloud上完成。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/07/161426cqk3cuchuig9mpv0.png) 当然,也可以只使用华为云DevCloud中的个别服务与已有流水线进行拼接,搭建成新的CI/CD流水线。例如,在DevCloud中可以由代码托管服务CodeHub来作为本期主题GitOps中的Git仓库。 # GitOps 流水线 GitOps 基于拉模式构建交付流水线。在DevCloud中以GitOps的方式搭建的交付流水线,流程如下: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/07/1614369e1dwbfpidtjp6q3.png) 1、 源码存储于CodeHub,开发人员推送提交包含新功能的代码到代码仓库的对应分支中;代码审核通过后将被合并至对应分支。 2、 合并请求通过后会触发构建(CloudBuild)并进行测试,构建好的镜像将被推送至镜像仓库SWR中。 3、 GitOps检测到有新的镜像,会提取最新的镜像标记,然后同步到 Git 配置仓库(Config)的清单中。 4、 GitOps检测到集群状态过期,会从配置仓库(Config)中拉取更新后的清单,并将包含新功能的镜像通过CloudDeploy部署到集群(CCE)里。 对于不同环境而言,可以在Config仓中创建多个子目录或者子分支管理不同环境对应的多个集群,从而实现多环境的GitOps。
总条数:361 到第 页
上滑加载中