云服务器内容精选

  • 查看提交历史 代码托管服务 支持查看提交历史的详细信息以及其涉及的文件变更。 您可以在仓库的动态、仓库文件列表的历史页签中,查看提交历史的清单,单击某次提交历史可以进入查看此次提交提交人、提交号、父节点、此条提交下评论的数量、代码变更对比等。 您可以对提交内容进行评论,也可对评论内容进行跟帖。 单击下图中的图标可以切换代码变更对比的横版或纵版显示,单击“全部展开”可以查看此次提交中涉及的文件的全文。 父主题: 提交代码到代码托管仓库
  • Linux、Mac平台的git-crypt、gpg安装 Linux平台安装git-crypt、gpg Linux安装依赖环境。 Software Debian/Ubuntu package RHEL/CentOS package Make make make A C++11 compiler (e.g. gcc 4.9+) g++ gcc-c++ OpenSSL development files libssl-dev openssl-devel Linux环境下,使用源码编译方式安装git-crypt。 下载源码 make make install 安装到指定目录。 make install PREFIX=/usr/local Linux环境下,使用源码编译方式安装GPG。 下载源码 ./configure make make install 使用Debian包安装git-crypt。 下载源码 Debian打包可以在项目Git仓库的“debian”分支中找到。 软件包是用“git-buildpackage”构建的,如下所示。 git checkout debian git-buildpackage -uc -us Debian环境下使用构建包安装GPG。 sudo apt-get install gnupg MAC平台安装git-crypt、gpg macOS上安装git-crypt。 使用 brew 软件包管理器,只需运行如下命令。 brew install git-crypt macOS上安装GPG。 使用 brew 软件包管理器,只需运行如下命令。 brew install gpg
  • git-crypt加密在团队合作中的应用 在很多时候,团队需要在代码仓库中存储限制公开的文件,这时可以优先考虑使用“CodeArts Repo” + “Git” + “git-crypt”的组合,来实现部分文件在仓库分布式开源中的加密。 通常,直接使用密钥对方式的加密就能满足限制部分文件访问的需要。 当团队需要将加密文件设置不同的秘密级别时,可以使用GPG方式加密,这种方式支持您对同一个仓库的不同文件使用不同的密钥加密,将不同密级的密钥分别随仓库共享给组织内的伙伴,即可实现文件的定向分级限制访问。
  • git-crypt简介 git-crypt是一款第三方开源软件,可以用于对Git仓库中的文件进行透明化的加密和解密。其可对指定文件、指定文件类型等进行加密存储,开发者可以将加密文件(如机密信息或敏感数据)与可共享的代码存储在同一个仓库中,并如同普通仓库一样被拉取和推送,只有持有对应文件密钥的人才能查看到加密文件的内容,但并不会限制参与者对非加密文件读写。 也就是说,使用git-crypt可以让您仅加密特定文件,而不需要锁定整个仓库,这既方便了团队合作,又可兼顾信息安全。
  • 在Windows中使用密钥对方式进行加密、解密 安装并初始化Git。 下载最新基于Windows的git-crypt,将下载到的exe文件放到Git安装目录下的“cmd”文件夹中,下图以“Windows Server 2012 R2 标准版 64”的默认Git Bash安路径为例。 放进文件夹即可,不需要运行此exe。 生成密钥对。 打开“Git Bash”,并进入本地仓库(如下图1)。 生成密钥对,输入指令如下(如下图2): git-crypt init 将密钥文件导出,本示例中将密钥文件导出到C:\test目录并名为KeyFile,输入指令如下(如下图3): git-crypt export-key /c/test/keyfile 执行完以上步骤,可以到密钥导出的文件路径,验证下是否生成了密钥,在本示例中到C:\test路径下验证是否有KeyFile文件,如下图所示。 持有这个密钥文件的计算机,可以解密对应的加密文件。 为仓库配置加密范围。 在仓库的根目录下新建一个名为.gitattributes的文件。 打开.gitattributes文件,设置加密范围,语法如下。 文件名或文件范围 filter=git-crypt diff=git-crypt 下面给出四个示例。 FT/file01.txt filter=git-crypt diff=git-crypt #将 特定文件加密,这里加密的是FT文件夹下的file01.txt *.java filter=git-crypt diff=git-crypt #将 .java类型文件加密 G* filter=git-crypt diff=git-crypt #将 文件名为 G 开头的文件加密 ForTest/** filter=git-crypt diff=git-crypt #将 ForTest 文件夹下的文件加密 如果创建.gitattributes文件时提示“必须键入文件名”,可以将文件名填写成 “.gitattributes.”即可创建成功,如果使用Linux指令创建文件,则不会出现此问题。 注意不要将.gitattributes保存成txt文件,这样配置会无效。 进行文件加密。 仓库根目录打开Git bash,执行如下指令即可完成加密,并会看到目前文件的加密状态。 git-crypt status 加密执行后,在您的本地仓库仍能明文方式打开和编辑这些加密文件,这是因为您本地仓库有密钥存在。 这时你可以使用add 、commit、push组合将仓库推送到代码托管仓库,此时加密文件将一同被推送。 加密文件在代码托管仓库中将以加密二进制方式存储,无法直接查看。如果没有密钥,就算将其下载到本地,也无法解密。 “git-crypt status”只会加密本次待提交的文件,对本次未发生修改的历史文件不会产生加密作用,Git会对此设定涉及的未加密文件做出提示(见上图中的Warning),如果想将仓库中的对应类型文件全部加密,请使用“git-crypt status -f”。 在让团队合作中 -f (强制执行)具有一定的风险,可能会对合作伙伴的工作产生不变,请谨慎使用。 进行文件解密。 确认本机器Git安装路径下存在git-crypt文件。 将仓库从代码托管克隆到本地。 获取加密此仓库的密钥文件,并存储于本地计算机。 进入仓库目录,右键打开Git bash。 执行解密指令,执行后无回显,则为执行成功。 git-crypt unlock /C/test/KeyFile #请将 /C/test/KeyFile 更换为您实际的密钥存储路径
  • 操作步骤 一般情况下,开发者不会直接在master分支中进行开发,而是基于master或者dev分支创建一条feature分支,在feature中进行开发,然后将其推送到代码托管仓库,最后在代码托管仓库中将其合并到master或dev分支中,下面将模拟以上操作。 进入本地仓库目录,打开Git客户端,本案例以Git Bash为例,其它使用Git进行管理的工具的原理和命令使用基本是一致的。 基于master分支新建一条分支feature1001,并切换到其中,在master分支中执行以下命令。 git checkout -b feature1001 #如下图1 这个命令相当于先新建分支,然后直接切换到此分支。 执行成功如下图中2所示,此时可用ls命令查看其中包含的文件(如下图中3),此时他与master分支中内容是一样的。 在feature分支中进行修改(代码开发)。 Git支持Linux命令,本案例用touch命令新建一个newFeature1001.html文件,代表开发者已经在本地完成了新特性的开发,其对本地代码库的影响是新增了文件。 touch newFeature1001.html 创建后再次使用ls命令可以看到多出了这个文件。 使用add、commit命令依次将文件从工作区加入暂存区,再提交到本地版本库。(这是什么原理?) 期间可以穿插使用status命令,观察文件状态。 使用status命令看到,目前工作区有一个文件未纳入版本管理,如图中1。 使用add命令将文件加入暂存区,如图中2。 git add . #使用“.”代表所有文件,包括隐藏的,也可以直接指定某个文件 使用status命令看到,文件已经加入到暂存区,正在等待提交,如图中3。 使用commit命令将文件提交到本地版本库,如图中4。 git commit -m “您的提交备注” 再次查看状态,没有可处置文件,说明提交成功了,如图中⑤。 将本地的分支推送到代码托管仓库。 git push --set-upstream origin feature1001 本命令会在代码托管仓库新建一条与您本地feature1001一样的分支,并将其进行关联、同步。 其中origin是您的代码托管仓库名称,一般直接可控的仓库默认别名为origin,您也可以直接用仓库地址代替。 如果推送失败请检查连通性: 确保您的网络可以访问代码托管服务。 请在git客户端使用如下测试命令验证网络连通性。 1 ssh -vT git@********.com 如果返回内容含有“connect to host ********.com port 22: Connection timed out”,则您的网络被限制,无法访问代码托管服务,请求助您本地所属网络管理员。 请检查建立的密钥配对关系,必要时重新生成密钥并到代码托管控制台进行配置,请确认SSH密钥或确认HTTPS密码配置正确。 检查IP白名单。注意,在未配置白名单时,全部IP均会放行,如果配置了则只允许名单内的IP访问。 查看代码托管仓库分支。 登录代码托管服务,进入您的仓库,在文件列中可以看到此时已经可以在代码托管仓库切换到您的分支。 如果没有看到您刚推送上来的分支,很可能是您的origin绑定到了另外的仓库,请使用仓库地址再次推送。 此时您可以使用代码托管服务提供的合并请求管理功能,发起分支合并,并通知审核人进行评审,最终将新特性合入到master或dev分支中。
  • 背景信息 Eclipse安装Git插件EGit后,可以完全对接代码托管,可以将本地Git仓库代码完整提交到远程Git仓库中。 只支持Ecplise 4.4以上版本(在Eclipse3.3版本没有自带EGit插件,无法安装)。 如果是首次提交: 首先在本地计算机建立一个仓库,称本地仓库。 然后在本地进行Commit,将更新提交到本地仓库。 最后将服务器端的更新Pull到本地仓库进行合并,最后将合并好的本地仓库Push到服务器端,即进行一次远程提交。 如果非首次提交: 首先将修改的代码Commit更新到本地仓库。 然后将服务器端的更新Pull到本地仓库进行合并,最后将合并好的本地仓库Push到服务器端。
  • 步骤四:将本地仓库代码提交到远程的Git仓库中 在代码托管服务中创建仓库。 创建好远程仓库后,进入远程代码仓库详情页面,可以复制远程仓库地址。 选择Push菜单,开始将代码提交到远程仓库,如下图所示。 在弹出的“Push to Another Repository”窗口中,设置相应参数,如下图所示。 单击“Next”,弹出“Push Ref Specifications”,如下图所示。 单击“Add Spec”,成功添加,如下图所示。 单击“Next”,弹出“Push Confirmation”窗口,如下图所示。 单击“Finish”提交本地代码,如下图所示。 单击“OK”,完成代码提交远程仓库。 登录远程仓库地址,核对提交的代码。
  • 步骤三:新建项目,并将代码提交到本地的Git仓库中 新建项目“git_demo”,并新建“HelloWorld.java”类,如下图所示。 将“git_demo”项目提交到本地仓库,如下图所示。 在弹出的“Share Project”窗口中,选中“Git”,如下图所示。 单击“Next”,弹出“Configure Git Repository”,如下图所示。 单击“Create Repository”,成功创建Git仓库。 文件夹此时处于“untracked”状态(文件夹中以符号“?”表示)。 此时需要提交代码到本地仓库,如下图所示开始提交。 弹出“Commit Changes”窗口,设置提交信息,如下图所示。 单击“Commit”,代码提交到本地仓库,如下图所示。