上云无忧 > 文档中心 > 百度智能云代码托管 iCode 使用教程 - 快速开始
代码托管 iCode
百度智能云代码托管 iCode 使用教程 - 快速开始

文档简介:
快速进入iCode: 登录百度智能云并实名认证,根据提示完成服务开通。 设置代码clone密码: 代码库采用https协议上传和下载代码,平台依据百度智能云用户的信息(用户名、公司、邮箱信息)生成一个下载代码使用的用户名,在icode右上角个人设置页中设置密码用户上传和下载代码,设置方法如下图: 【百度智能云】效率云
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

快速进入iCode

登录百度智能云并实名认证,根据提示完成服务开通。

设置代码clone密码

代码库采用https协议上传和下载代码,平台依据百度智能云用户的信息(用户名、公司、邮箱信息)生成一个下载代码使用的用户名,在icode右上角个人设置页中设置密码用户上传和下载代码,设置方法如下图:

准备代码的开发环境

安装Git客户端

登录你的开发环境,首先确认是否已经安装git客户端。若尚未安装请参考下述方法

环境 安装方法
Windows https://git-for-windows.github.io/,装Git送Cygwin,在开始菜单中找git bash运行
Mac http://brew.sh/,先装包管理工具Homebrew,再用brew install git
Linux 一般的发行版都自带Git,如果没有可尝试使用系统的包管理工具安装或使用源码安装

Windows下安装

step1. 下载安装包

step2. 按照向导提示选择您心仪的位置安装,直到下图中“finish”安装完成



开启百度效率云-DevOps-iCode之旅

创建/删除代码库

小贴士:想要将代码托管到iCode,第一步要创建一个代码库,可以理解为在百度效率云-DevOps-iCode的服务器上申请了一个专门的空间用来存储自己的代码。git代码库是代码托管的唯一单元,是管理代码权限的最小单元,是在ipipe上编译和发布的唯一单元,与svn时代的“模块”概念对等。故要将你的代码代码托管到iCode,首先要创建代码库。

创建

代码库有“公开”和“保密”之分,“公开”指对公司内部成员公开,具备只读代码和发起评审的权限;“保密”则除非特别授予权限(管理员/可写/可读,三选一),否则对此代码库无任何权限

代码库命名规范要求必须是三级,规则如下:

  1. 企业名【不能修改】在百度效率云-DevOps开通服务的时候指定。例如自动生成:dasdaaaaa
  2. 目录名【不能修改】目录下可以包含多个代码库,是在创建项目的时候与项目唯一标识关联的。例如:icode
  3. 代码库名【自定义】是代码库的最后一级,依据自己开发的模块功能取名。例如:portal

如下图创建代码库,代码库名(第三级)、保密类型后,<新建>即可

删除

我创建了一个测试用的代码库想删除怎么办?代码库的管理员(代码库的创建人是代码库的第一个管理员)可以自助删除此代码库

注意:代码库一经删除不能恢复,请慎重。

下载和提交代码

克隆一个代码库到开发环境

小贴士:远程仓库是裸库,且百度效率云-DevOps-iCode目前尚不支持在线修改代码,因此开发者在开发之前,都需要将远程仓库克隆到自己的开发环境中。百度效率云-DevOps-iCode暂时仅提供https一种协议。

第一步,获取代码库的克隆命令

以仓库Baidu/demo为例,进入Baidu/demo仓库主页,可获取仓库的下载命令(如下图),复制命令到任意已安装Git客户端的环境中执行即可。

第二步:在开发环境的一个干净的目录下执行克隆命令

克隆到开发环境中的Baidu/demo库中仅有一个版本管理的目录“.git”和一个编译配置文件“ci.yml”

$ cd /somedir
$ git clone https://[用户名]@xly.bce.baidu.com/git/xxx/Baidu/demo
Cloning into demo...
remote: Total 21 (delta 0), reused 21 (delta 0)
Unpacking objects: 100% (21/21), done.
$ cd demo/
$ ls


提交代码

小贴士:如果你是Git的忠实用户,可以跳过此小节~ Git作为当下最流行的分布式代码管理工具之一,俗话说“鱼与熊掌不可兼得”,强大的Git客户端提供超多功能,同时也有一定的学习成本。如果你第一次接触Git,小编建议你先从网上查查资料自学下Git的设计原理和基本用法。

Git代码库有三个存储区

  • Working Directory(工作区),.git目录外这个小文件系统
  • Staging Area(暂存区),在.git里面,但还未入库
  • Repository(历史区),在.git里面,commit成功后进到这里

下图描述了三个存储区状态的演变顺序

下图描述了文件在各个区域间转换的命令

示例1:修改Baidu/demo仓库中已有的Hello.cpp文件

$ cd demo/
注:打开Hello.cpp文件,修改
$ vim Hello.cpp
$ git status
# On branch master
#
# Changes not staged for commit:
#   (use "git add..." to update what will be committed)
#   (use "git checkout --..." to discard changes in working directory)
#
#       modified:   Hello.cpp
#
no changes added to commit (use "git add" and/or "git commit -a")

注:将修改的内容添加到Git代码库的暂存区
$ git add Hello.cpp
注:将修改的内容提交到本地的代码库
$ git commit -m "modify file:Hello.cpp"
[master 40d40c1] demo
 1 files changed, 1 insertions(+), 0 deletions(-)

示例2:增加一个新的文件Hello.h到仓库

$ cd demo/
注:打开Hello.h文件,编写代码
$ vim Hello.h
$ git status
# On branch master
#
# Untracked files:
#   (use "git add..." to include in what will be committed)
#
#       Hello.h

注:将修改的内容添加到Git代码库的暂存区
$ git add Hello.h
$ git status
# On branch master
#
# Changes to be committed:
#   (use "git reset HEAD..." to unstage)
#
#       new file:   Hello.h
#

注:将修改的内容提交到本地的代码库
$ git commit -m "add new file:Hello.h"
[master ef64838] demo
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 Hello.h

示例3:删除仓库中的Hello.h文件

$ cd demo/
注:删除Hello.h
$ git rm Hello.h
# On branch master
# Changes to be committed:
#   (use "git reset HEAD..." to unstage)
#
#       deleted:    Hello.h
#

注:将修改的内容提交到本地的代码库
$ git commit -m "delete file:Hello.h"
[master a1d5636] demo
 0 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 Hello.h

示例4:查看已修改的代码diff

$ cd demo/
注:在一个干净的没有任何修改的代码库中查看当前的状态
$ git status
# On branch master
#
nothing to commit (working directory clean)
注:查看diff无返回
$ git diff

注:此时打开Hello.cpp文件,增加一行代码
$ git diff
diff --git a/Hello.cpp b/Hello.cpp
index 72e8442..ae05cbd 100644
--- a/Hello.cpp
+++ b/Hello.cpp
@@ -4,5 +4,6 @@
 int main()
 {
 printf("Hello World!\n");
+ printf("Hello 百度效率云-iCode!\n");
 return 0;
 }

$ git add Hello.cpp
$ git diff
$ git diff --cached
diff --git a/Hello.cpp b/Hello.cpp
index 72e8442..ae05cbd 100644
--- a/Hello.cpp
+++ b/Hello.cpp
@@ -4,5 +4,6 @@
 int main()
 {
 printf("Hello World!\n");
+ printf("Hello 百度效率云-iCode!\n");
 return 0;
 }

$ git commit -m "test for git diff"
$ git diff
$ git diff --cached
$ git diff HEAD^
diff --git a/Hello.cpp b/Hello.cpp
index 72e8442..ae05cbd 100644
--- a/Hello.cpp
+++ b/Hello.cpp
@@ -4,5 +4,6 @@
 int main()
 {
 printf("Hello World!\n");
+ printf("Hello Hello 百度效率云-iCode!\n");
 return 0;
 }

一些常用的Git操作指令

操作 命令 操作 命令
新建一个代码库 git init –bare/git init 查看分支 git branch [-av]
克隆 git clone [repourl] 切换分支 git checkout [branchname]
将修改的文件添加到暂存区 git add [filename] 创建新分支 git branch [newbranch] [basebranch]/git checkout -b [newbranch] [basebranch]
将暂存区中的文件提交到历史区 git commit -m “some messages”/git commit –amend 删除分支 git branch -d [branchname]/git branch -D [branchname]
查看状态 git status/git diff 合并分支 git merge/git rebase
查看diff git diff –cached/git diff HEAD 回滚代码 git checkout filename/git reset –hard/–soft
查看日志 git log 标记tag git tag
查看、添加/删除远程仓库 git remote -v/git remote add/rm [remotename] 查看文件内容 git show
从远程仓库更新代码 git pull/git fetch 文件删除、改名 git rm [filename]/git mv [filename]

写一段代码推送到远程仓库

小贴士:当你想和团队的其他成员分享某个本地分支的代码时,你就需要把你的代码先推送到远程仓库中。也就是说,你创建的本地分支并不会因为你执行了git commit(可以理解为提交到本地的仓库中)就自动同步到远端仓库了。只推动那些协同工作要用到的特性分支。

$ git push [远程仓库名] [本地分支名]:[远程分支名]

举例:修改Baidu/demo库中的Hello.cpp文件,并推送到远程仓库(origin)的master分支

$ cd demo/
$ git remote -v
origin  https://[用户名]:@xly.bce.baidu.com/git/xxx/Baidu/demo (fetch)
origin  https://[用户名]:@xly.bce.baidu.com/git/xxx/Baidu/demo (push)
$ vim Hello.cpp
$ git add Hello.cpp
$ git commit -m "first commit"
$ git push origin HEAD:master
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 394 bytes | 394.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
remote: 
remote: Processing changes: refs: 1, done
To https://xly.bce.baidu.com/git/xxx/Baidu/demo
   390d5bc..894b849  HEAD -> master

将来自github等其他Git平台上的代码托管到百度效率云-DevOps-iCode

step1. 在百度效率云-DevOps-iCode上新建一个代码库(参考新建代码库所述方法),例如:Baidu/Hello-World

step2. 将源代码克隆到开发环境中,添加iCode新代码库的地址且命名为icode,并将master分支的代码推送到远程仓库


$ mkdir src/
$ cd src/
$ git clone https://github.com/bj-yinyan/Hello-World.git --bare
Cloning into 'Hello-World'...
remote: Counting objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Unpacking objects: 100% (13/13), done.
Checking connectivity... done.
$ cd Hello-World
$ git remote set-url origin https://[用户名]@xly.bce.baidu.com/git/xxx/Baidu/Hello-World
$ git remote -v
origin   https://[用户名]@xly.bce.baidu.com/git/xxx/Baidu/Hello-World (fetch)
origin   https://[用户名]@xly.bce.baidu.com/git/xxx/Baidu/Hello-World (push)
$ git push origin --all
$ git push origin --tags

																										



在线浏览

浏览远程仓库存储的代码

小贴士:这就是传说中的git web哟,使代码浏览变得轻松简单~

在代码库的首页可以浏览远程仓库中不同分支的末端代码,如下图:

查看任意版本的代码,从提交历史入口,见下一段。

查看远程仓库的提交历史

更新远程仓库中最新的代码到开发环境

小贴士:在团队协作开发过程中,我们总是需要将其他成员推送到远程仓库的代码拉到本地的开发环境中,以便实现联调等工作。

方法一:git pull <=> git fetch + git merge

将远程仓库对应分支的代码拉到本地,并合并到本地分支中

举例:

$ cd demo/
$ git pull
From https://xly.bce.baidu.com/git/xxxxx/Baidu/demo
   8ffa7a0..3a918ac  master     -> origin/master

方法二:git pull –rebase <=> git fetch + git rebase

将远端仓库对应分支的代码拉到本地库,并以rebase的方式合并到本地分支,rebase可以理解为“重新修改基线”,即更新的历史会被写入本地修改代码之前。

举例:

$ cd demo/
$ git pull --rebase
From https://xly.bce.baidu.com/git/xxxx/Baidu/demo
   c7f377c..2897d6d  master     -> origin/master
Already up to date.
Current branch master is up to date.

在线搜索代码

目前只支持搜索单个代码的代码,通过dashboard页面进入具体的代码库(如下图,进入baidu/demo代码库),在导航栏中搜索框输入要搜索的关键词,即可。


相似文档
  • 权限管理是代码托管平台的核心功能之一。 概述:权限管理的维度有两种: 代码库级别,例如:baidu/icode/portal。 二级目录级别,例如:baidu/icode。 权限的类型有四种: 管理员、 可写权限、 可读权限、 其他(未设置权限的人)。 【百度智能云】效率云
  • 当我们对代码质量有较高要求的情况下,再使用git push直接将代码推入远程仓库的方法就难以满足我们的需求了。为此iCode为大家提供了人工评审和预提交测试的功能,下面介绍下开启方法和效果。 【百度智能云】效率云
  • 实际的项目开发中,往往不可避免的需要在master之外的其他分支提交代码。拉分支的情况可能有以下几种,不论你是哪种场景,原理都是相通的。 【百度智能云】效率云
  • 小贴士:iCode除了做好本职的工作,从使用者的角度出发,增加了云端编译功能,同时还和iPipe打通可以做一些持续集成和交付相关的事情哟~小伙伴儿们按需使用哦~ iCode联合ipipe和编译工具一起,只要代码托管在iCode,再写个ci.yml的编译配置文件就可以实现持续集成和交付。 【百度智能云】效率云
  • 本地工作: 一个任务用一个分支,可以提交多次。 git checkout -b 1-add-a-py vi a.py git add a.py git commit -m'add a.py' vi a.py git add a.py git commit -m'print hello world' push到服务器: git push origin HEAD:refs/for/master //评审系统中生成一条评审记录,评审的代码就是当前工作中的分支(HEAD)。本地分支1-add-a-py => 远端评审系统 => 远端master。 【百度智能云】效率云
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部