我去,码云Gitee原来是这样使用的
学习时,经常需要管理自己的代码,使用到 码云gitee 这个代码托管平台,所以在这里操作演示,做个笔迹详细记录一下。以下介绍 gitee 的使用操作。
一、 码云Gitee相关介绍
简介:介绍码云gitee的相关信息。
1.1 码云的介绍
码云是现在国内最大的代码托管平台,提供基于Git的代码托管服务,是一个为开发者提供稳定、高效、安全的云端软件开发协作平台。
1.2 码云的功能
除了Git代码托管这个功能,码云还提供代码在线查看、历史版本查看、打包下载任意版本、保护分支、代码质量检测、PaaS 项目演示等功能。
1.3 码云的模式
一个开源项目,开源分为两个群体:核心开发团队、贡献者。核心开发团队,拥有对代码修改的最终决定权;贡献者,能查看源代码但不能对版本库提交修改。
1.3.1 集中式版本控制系统
使用集中式版本控制系统(如SVN):
- 贡献者不能直接向版本库提交修改的代码。
- 而核心开发团队,对于涉及到版本库的操作(查看日志、创建分支等)都需要在连网的情况下进行,受网络带宽的影响比较大。
1.3.2 分布式版本控制系统
使用分布式版本控制系统(如Git):
-
每个开发者本地都拥有一份完整的版本库。
-
Git不排斥集中式模式,但更倾向于将集中式版本库称为共享版本库。
-
核心开发团队与共享版本库之间不需要一直保持连接状态(如查看日志、提交、创建分支等),几乎全部操作都(脱离网络)能在本地版本库中完成。
-
核心开发团队和贡献者(非项目成员)都可以从共享版本库克隆一份本地版本库,但 只有 核心开发团队成员才可以将自己的本地版本库推送到共享版本库上。
贡献者(非项目成员)提交自己对项目修改的两种方式:
- 用 git format-patch 命令将本地仓库提交转换为补丁文件或补丁文件序列,再通过 邮件 发送给核心开发团队。
- 搭建 一个自己的 共享版本库 ,通过 邮件 创建一个拉拽请求(Pull Request),让核心开发团队成员到自己的版本库来抓取(Pull)。
1.3.3 码云的协同模式
创建者只需在码云上点击创建版本库,再完成授权和核心开发团队的组建,项目就创建完成了。
贡献者参与项目:
- 找到想参与的项目,在自己的托管空间下创建一个派生(Fork)的项目(对派生项目的版本库拥有读写的完全权限)。
- 当贡献者完成开发,并向自己派生的版本库推送后,通过码云向项目的核心开发团队发送一个 Pull Request,请求审核。
- 核心开发团队收到 Pull Request 后审核代码,审核通过后,执行合并操作接纳贡献者的提交。
如图所示
二、 Gitee注册账号和搭建环境
简介:介绍初次运行git时的配置、账号的创建、git客户端能否访问git仓库。
2.1 初次运行前的配置
( 2.1 这部分作为理论熟悉,根据自己情况可直接从 2.2 开始操作)
使用前,需要配置自己的Git工作环境,只需要配置一次,以后升级会继续沿用现在的配置(如果需要修改,可以用相同命令修改配置)。
Git 提供了 git config 工具(即 git-config 命令,通过 git 加一个名字来执行此命令),用来配置或读取相应的工作环境变量,这些环境变量决定了 Git 在各个环节的具体工作方式和行为。
变量存放的三个地方:
- /etc/gitconfig 文件:系统中对所有用户都适用的配置(如果使用 git config ,选择 –system 选项,读写的就是这个文件)。
- ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户(如果使用 git config ,选择 –global 选项,读写的就是这个文件)。
- .git/config 文件(当前仓库的 Git 目录中的配置文件):这里的配置仅仅针对当前仓库有效(每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量)。
2.1.1 配置用户信息
配置 个人用户名 和 邮箱地址 ,每次 Git 提交时都会引用这两条信息,这两条信息会随更新内容一起写入历史记录,命令如下
git config --global user.name "用户名"
git config --global user.email "注册Gitee的邮箱"
如果使用 --global 选项,更改的配置文件就位于用户主目录下,以后 所有仓库 都会默认使用这里配置的用户信息(如果要在某个特定的仓库中使用其他名字或者邮箱,只要去掉 --global 选项重新配置即可,新的设置保存在当前仓库的 .git/config 文件里。)。
2.1.2 文本编辑器配置
Git 需要输入一些额外信息的时,会自动调用系统默认的文本编辑器,如 Vi 或 Vim 。
如果需要自定义,输入以下命令(以 Emacd 为例)
git config --global core.editor emacs
2.1.3 差异分析工具配置
这个命令是在解决合并冲突时,使用哪个差异分析工具。
输入以下命令(以改用 vimdiff 为例)
git config --global merge.tool vimdiff
另外,Git 可以理解为 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff 等合并工具的输出信息(可以自定义指定的开发工具)。
2.1.4 查看配置信息
检查已有的配置信息
git config --list
有时候会看到一样的变量名,则说明它们来自不同的配置文件(如 /etc/gitconfig 和 ~/.gitconfig ),Git 实际采用最后一个。
查阅某个环境变量的设定(把特定的名字跟在后面即可)
git config user.name
2.2 注册Gitee账号
打开 浏览器 ,在地址栏输入 Gitee.com ,敲击回车,出现以下界面,点击 加入码云
出现以下界面,选择注册登录方式
完成注册。
2.3 环境的搭建
2.3.1 配置用户信息
以下操作是用终端模拟器 Cmder ,推荐使用这个工具,这个工具比较便捷,比如需要粘贴,点一下右键就粘贴了。如果不想下载这个工具,也可以在终端操作(打开 终端 快捷键:Win + r ,输入 cmd )
(下载地址: Cmder下载 ,也可以在网上找相关资源下载)
打开 Cmder (或 终端 ),输入 git 查看是否显示命令的使用方法
git
配置 Git 全局用户名和邮箱,注意替换用户名和邮箱
git config --global user.name "用户名"
git config --global user.email "注册Gitee的邮箱"
2.3.2 配置免密访问
配置免密访问 Gitee.com 。为了能够向刚创建的仓库提交代码,需要配置加密的密匙到 Gitee.com ,在实现通信加密的同时,不需要用户每次都验证账号输入密码。
在 Cmder 输入以下命令(命令中有双引号的,在双引号中输入邮箱),接着不用输入, 一路敲击回车 就可以了
ssh-keygen -t rsa -C "注册Gitee.com的邮箱地址"
命令执行完后,在 Windows个人用户目录 下会生成一个 .ssh
目录 ,打开后可以看到生成的 私钥 和 公钥 文件
在.ssh
目录中,新建两个文本文件 config 和 known_hosts
在 config 文件中加入以下内容( 注意 文件名要删掉后缀.txt
)
# gitee 指定私钥路径
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
完成后如下
打开公钥id_rsa.pub
文件(以记事本形式打开),复制里面的内容
在 known_hosts 文件中加入复制的内容,把末尾的 邮箱名删掉 ( 注意 文件名要删掉后缀.txt
)
gitee.com <粘贴id_rsa.pub的内容,并去掉它结尾的邮箱>
完成后如下
登录 Gitee ,点击超链接进入 码云添加SSH公钥,熟悉的话也可以按一下操作进入。
鼠标移到右上角头像处,点击 设置
再点击 SSH公钥 ,在这里添加公钥。
打开后填入一下信息,把 公钥id_rsa.pub 的把 所有 内容复制这里,点击 确定
点击 确定 后,会弹出提示,按提示输入验证身份就可以了
验证成功后,打开 Cmder 输入下面命令测试认证Gitee.com 是否成功
ssh -T git@gitee.com
认证成功,继续下面的操作。
三、 创建Gitee仓库和提交代码
简介:介绍Gitee仓库的创建、使用Git提交代码。
3.1 创建仓库
3.1.1 创建远程仓库
登录 Gitee.com ,点击右上角的 + 号,再点击 新建仓库
填写 仓库名称 ,设置 公开 (一般指的是开源项目)或者 私有 ,其他默认(也可以根据自己需要选择)
这里要 勾选 上(如果不勾选,到时候操作不太方便,比如需要用git命令创建仓库)
选择 分支模型 为 特性/发布模型
(根据具体需要选择,比如选择单分支模型),点击 创建 ,仓库创建完成 。
打开仓库,点击 代码 ,选择 SSH ,复制仓库的SSH访问链接(注意选择的是SSH协议,不是HTTPS协议)
如果以后需要查看 远程仓库 的 访问连接 ,打开仓库后点击 代码 ,在右侧点击 克隆/下载 ,再选择所需要的复制
打开 Cmder ,选择存放仓库的地方(根据自己情况选择),输入以下命令
d:
mkdir d:\GitTest
cd d:\GitTest
git clone 仓库的SSH访问链接
进入上面所创建目录,查看目录,检查仓库是否下载成功
3.1.2 创建本地仓库
如果想创建一共git的本地仓库,则按以下操作。
进入到想创建本地git仓库的文件夹,用以下命令(路径是指git本地仓库的路径),
cd 路径
把这个目录设置成git本地仓库,输入以下命令
git init
打开文件夹,发现生成了一个 .git 文件,表示git的本地仓库创建成功。
3.2 代码提交
3.2.1 提交过程
把需要提交的代码解压到该目录下
进入到克隆下来的仓库
cd Gitdemo
把代码加入到 暂存区
git add *
查看 暂存区 的代码,可以看到文件处于new file
状态
git status
把代码提交到 本地仓库 ,双引号内写入本次提交的注释,命令如下
git commit -m "提交内容注释"
再次查看 暂存区 ,查看暂存区文件状态,如下图,暂存区没有还没提交到 本地仓库 的文件
将 本地仓库 提交到 远程仓库 (即Gitee仓库
)
git push
通过 浏览器 打开 Gitee仓库 ,查看代码是否提交,可以看到提交记录等信息
3.2.2 修改后再次提交演示
( 3.2.2 的操作,以上面上传的代码为例,请根据自己的代码修改)
以 记事本 形式打开 .html 文件,对代码进行修改,修改前如下
修改完后,点击 保存
用浏览器打开该文件,查看是否修改成功
根据3.2.1
的操作命令,把修改后的代码提交到远程仓库
用到下面这几条命令
git add *
git status
git commit -m "提交内容注释"
git push
把修改的文件放入 暂存区 ( 注意 这两条命令: git add
是把修改的代码放入暂存区,git add *
是把当前目录所以修改的文件都放入暂存区)
查看暂存区状态,再把 暂存区 代码提交到 本地仓库
检查暂存区状态,把 本地仓库 推送到 远程仓库
再打开浏览器,查看该远程仓库日志,查看是否提交成功
好了,代码提交演示完成。
四、 分支与标签的管理
简介:介绍如何管理git的分支,如何使用分支进行开发、修复bug。
4.1 管理的背景
在软件开发行业中,有一种常见的版本号分类方法,就是使用数字标记,用点(dot)符号隔开,随着每次版本的更新数字会递增。软件版本
有: 开发版 (develop), 新特性版本 (feature), 正式版 , 修复版 (hotfix) 。
例如 1.2.8 这个版本号,通常 1 代表 大版本号 ,代表软件的重大改版更新,架构的大更改; 2 代表 小版本号 ,一般是新增一些小功能或模块; 6 代表 功能修复 ,就是大家常说的修复bug。
4.2 操作思路
master 是主干分支, 正式版 一般要从主干分支发布。
发布前要在版本位置上标记上版本信息(即打标签),通过打标签,方便以后知道发布的版本对应着哪一次提交的内容。
以上面的创建为例,版本号为 v1.0.0 ,发布三个版本:
- 正式版v1.0.0。
- 正式版v1.0.1,包含一个bug修复(hotfix)。
- 新特性开发版v1.1.0 Build-20200518,包含一个新特性。
4.3 操作步骤
4.3.1 发布正式版
查看本地仓库的分支,*
表示当前分支
git branch
查看本地仓库提交历史(发行版本前,要确定该版本有哪些提交内容)
git log
给 master 分支(主干)打上标签 v1.0.0
git tag -a v1.0.0 -m '正式版v1.0.0'
查看所有的标签
git tag -l
将新增的标签提交到远程仓库
git push --follow-tags
查看标签是否提交,打开 浏览器 ,查看 远程仓库 ,点击 统计 ,再点击 标签
在下面这里点击 发行版 ,可以创建 远程仓库的发行版 ,这样别人就可以直接下载该版本的应用了(在此就不演示这个操作了)
4.3.2 修复正式版(热修复补丁)
如果需要修复bug(假设正式版v1.0.0
发现了一个bug),在 master 分支上,基于 v1.0.0 来修复这个bug,从标签 v1.0.0 新增一个分支来修复
git checkout -b hotfix-v1.0.1 v1.0.0
查看是否新增的 hotfix-v1.0.1 分支,并且当前正处于这个分支上
git branch
如果想切换分支,可以输入这个命令来切换不同的分支
git checkout 分支名称
接着以 记事本 形式打开.html
文件(和上面一样,请根据自己的代码修改,文章代码的操作演示,是根据我提交的代码来操作的),修改前如图所示
修改为 正式版v1.0.1 ,点击 保存
接着,在 Cmder 输入以下命令,提交修改
git add index.html
git commit -m "提交内容的注释"
git push
因为 hotfix-v1.0.1 只是一个临时分支,所有修改完后要合并到 master 分支。
切换到 master 分支
git checkout master
把 hotfix-v1.0.1 分支的修改合并到 master 分支上
git merge --no-ff hotfix-v1.0.1
加上标签 正式版v1.0.1
git tag -a v1.0.1 -m "正式版v1.0.1"
hotfix-v1.0.1 分支已经合并到 master 分支上,为了方便维护,一般会删掉这个分支,输入以下命令
git branch -d hotfix-v1.0.1
接着 push 推送到 远程仓库 ,输入以下命令
git push --follow-tags
查看新的 Tag 是否存在
git tag -l
打开 浏览器 ,检验以下是否提交成功
提交完成。
4.3.3 发布新特性版
开发一个 新特性版v1.1.0 (假设这个版本短时间内开发不完,需要以迭代方式开发),每日发布一个开发版(版本号后面加上Build的日期)。比如第一次开发是2020年5月18日,则版本号就是v1.1.0 Build-20200518。
为了不影响 master 分支的正常维护(master 分支可能还要发布修复bug),一般需要在v1.0.1 标签这里再新建一个develop分支,输入命令如下
git checkout -b develop v1.0.1
修改代码内容(请根据自己代码修改)
修改后如下
把修改的代码放入 暂存区
git add 文件名
把 暂存区 的代码提交到 本地仓库
git commit -m "提交内容的注释"
使用的标签标记为 v1.1.0-Build-20200518
git tag -a '标签' -m "标签描述"
建立追踪关系,设置本地仓库的分支(好像默认都有origin)对应远程仓库的分支
git push --set-upstream 现有分支 远程分支
把本地仓库提交到远程仓库,输入以下命令(该命令是追随标签提交)
git push --follow-tags
打开 浏览器 进入仓库,检验是否提交成功
好了,提交完成。
4.4 删除指定分支的文件
简介:这一小节就不截图演示了,直接介绍怎样操作。
输入以下命令进入到 Git本地仓库
cd 本地仓库路径
查看分支
git branch -a
切换到想操作的分支
git branch [branch]
在本地仓库删除想要删除的文件
git rm [file] //如果想删掉所有文件,则用 * 替代文件名
或者用下面这句命令删除
git rm -r [file] // -r表示递归所有子目录
删除后再进行提交(提交到本地仓库)
git commit -m "提交描述"
最后推送到远程仓库
git push origin [branch]
五、 常用命令
简介:介绍操作时经常使用到的Git命令。
5.1 Git相关说明
5.1.1 git本地各部分介绍
- git本地仓库:
- 工作区
- 本地版本库——.git隐藏文件夹
- 暂存区——修改了的文件,还没提交到仓库。
- 提交状态
关于 暂存区 介绍:
- 本地仓库里面存放了很多东西,其中有个很重要的叫做stage(或者叫index)的暂存区。
- git自动创建的第一个分支为master,指向master的一个指针叫做HEAD。
工作区、暂存区、本地版本库、远程版本库 之间的关系如下(图片是大二时的资料,源于网络):
5.1.2 分支介绍
分支 | 说明 |
---|---|
mater | 默认开发分支 |
origin | 默认远程版本库 |
HEAD | 指向当前分支的最新提交 |
HEAD^ | HEAD的父提交 |
5.2 Git常使用到的命令
5.2.1 实用Git命令列表
-
git clone : 从git服务器(远程仓库)拉取代码。
-
git config : 配置用户名和邮箱。
-
git branch :操作项目分支(创建、重命名、查看、删除)。项目开发一般是在开发分支进行,开发完后再合并到主干。
-
git checkout : 切换分支。
-
git status :查看文件变动状态。
-
git add :将文件添加到暂存区。
-
git commit :提交文件变动到版本库(本地仓库)。
-
git push :将本地代码推送到服务器(远程仓库)。
-
git pull :将服务器(远程仓库)上的最新代码拉取到本地。
-
git log :查看版本提交记录(按
j
往下翻,按k
往上翻,按q
退出查看)。 -
git tag :为项目标记标签。
-
.gitignore :设置哪些内容不需要推送到服务器(远程仓库)。
关于 .gitignore 操作的介绍:
- 这是一个配置文件(不是Git的命令),在项目中,通过命令 ==touch .gitignore== 创建一个.gitignore文件,通过编辑器打开创建的这个文件,添加忽略的文件或目录(每行代表一个忽略的文件或目录)。
5.2.2 操作之间联系的命令
本地仓库 与 远程仓库 之间的联系命令:
命令 | 解释 |
---|---|
git remote -v | 查看远程仓库信息 |
git remote show [remote] | 查看指定远程仓库信息 |
git init | 初始化本地版本库 |
git clone [url] | 克隆远程仓库,url指的是远程仓库地址 |
git pull [remote] [branch] | 拉取远程仓库的代码到本地仓库并自动合并 |
git fetch [remote] | 下载远程仓库的所有变动 |
git push | 从本地仓库推送到远程仓库 |
git push [remote] [branch] | 上传代码并合并 |
git push --tags | 上传所有标签 |
git clone 与 git pull 的区别:
- git clone 不需要本地初始化仓库,git pull 则需要。
- git clone 本地无需是一个仓库,且克隆将设置额外的远程跟踪分支,文件夹.git里存放与远程仓库一样的版本库记录。
本地仓库 与 暂存区 之间的联系命令:
命令 | 解释 |
---|---|
git status | 查看暂存区状态 |
git diff | 查看变更内容 |
git add | 把修改的代码放入暂存区 |
git add * | 把当前目录所有修改的文件都加入暂存区 |
git add . | 跟踪所有改动过的文件(别漏掉 . 这点) |
git add [file] | 跟踪指定的文件 |
git rm --cached [file] | 停止跟踪文件但不删除 |
git rm [file] | 删除文件 |
git mv [old] [new] | 文件改名 |
git commit --amend | 修改最后一次提交 |
git commit -m [message] | 把暂存区代码提交到本地仓库 |
对 分支 的操作:
命令 | 解释 |
---|---|
git merge [branch] | 合并指定分支到当前分支 |
git branch | 查看所有本地分支 |
git branch [branch-name] | 创建新分支 |
git branch -d [branch] | 合并后删除分支 |
git checkout [branch] | 切换到指定分支 |
git branch -m [branch-name] [branch-name-new] | 重命名分支 |
对 标签 的操作
命令 | 解释 |
---|---|
git tag | 查看所有本地标签 |
git tag [tag-name] | 在当前提交(commit)新建一个标签 |
git tag [tag] [commit] | 在指定提交新建一个标签 |
git tag -d [tag] | 删除标签 |
撤销 的命令
命令 | 解释 |
---|---|
git reset --hard | 重置暂存区与工作区(与上一次commit保持一致) |
git revert [commit] | 撤销指定的提交 |
查看历史信息:
命令 | 解释 |
---|---|
git log | 查看当前分支的提交历史记录 |
git log -p [file] | 查看指定文件的提交历史 |
git log -S 关键词 | 根据关键词搜索提交历史 |
git blame [file] | 以列表方式查看指定文件的提交历史 |
git status | 显示有变更的文件 |
六、 操作时遇到的问题
简介:介绍操作时常遇到的问题。
6.1 修改文件扩展名的方法
需要删掉文件后缀的时候,找不到文件的扩展名,点击 查看 ,勾选 文件扩展名
找到需要修改的文件,点击文件,右键选择 重命名 ,再修改
点击 确定
扩展名修改完成
6.2 Cmder 提示error: cannot spawn less: No such file or directory
解决方法:把计算机名修改为英文名
点击 此电脑 ,右键 属性 ,选择 系统保护 或者 高级系统设置
再在弹出的窗口选择 计算机名 ,接着修改就可以了
6.3 克隆仓库时提示 warning: You appear to have cloned an empty repository
提示克隆了一个空仓库,这个提示可以忽略的。上面的操作,新建仓库还没有放入内容,就弹出了这个提示,对接下来的操作没有影响的。
6.4 Cmder 提示 Bad owner or permissions on
可能是Windows用户不能访问 .ssh目录 ,导致创建密钥失败,解决操作:
- 找到 .ssh 文件夹 (一般位于用户目录下,即 C:\Users\Windows用户名 这个目录里面)
- 右键 .ssh 文件夹,点击 属性
- 点击 安全 --> 高级 ,在弹出的界面的左下角,点击 禁用继承 ,再点击确定
- 弹出提示窗口,点击 从象中删除所有继承的权限 ,接着你会看到所有用户都删除掉了,让我们添加所有者
- 在这个窗口中,点击 编辑 --> 添加 --> 选择用户或组 --> 高级 --> 立即查找 ,点击后会显示用户列表
- 选择你的用户账户
- 接着一路点击 确定 ,就解决这个问题了
6.4 执行 ssh-keygen 时提示 could not create directory ‘c:\xxx\ssh’:Invalid argument
可能是Windows的用户名采用了中文或特殊字符,因为命令参数不支持中文和特殊字符,所有导致了创建目录失败,修改下用户名就可以了。
也有可能是没有C盘的访问权限,如果是权限问题,请参考 6.3 的解决方法。
6.5 输入命令后提示 error: invalid key 或 error: invalid argument
查看命令是不是少打空格等,导致参数错误。
6.6 提示 fatal:Authentication failed for ‘https://gitee.com/xxxx’
这个提示是因为使用HTTPS协议管理远程仓库,却使用了错误的gitee用户名和密码,输入正确的注册邮箱和密码就可以解决这个问题了。
6.7 提示 Please tell me who you are
这个提示是因为 Git的 user.name 和 user.email 没有配置,随意导致远程仓库认证失败,配置 gitee用户名和认证邮箱 就可以解决这个问题了。
6.8 提示 warning:LF will be replaced by CRLF in xxxx The file will have its original line endings in your working directory
Git提交到远程仓库时,自动把提交文件的 Windows的分行符 转换为 Linux/Unix的分行符 ,这个提示可以忽略。
6.9 ssh: connect to host git.com port 22: Connection timed out
这是输错命令的了,看清楚命令-。-
文章来源: https://blog.csdn.net/qq_45069279 ,作者:苜苜的烂笔头,版权归原作者所有,如需转载,请联系作者。
原文链接:https://blog.csdn.net/qq_45069279/article/details/106174340
- 点赞
- 收藏
- 关注作者
评论(0)