文章目录
Git服务–码云-初识
一. 关于云平台
主要用于版本控制,linux开发中的意外产品、初心在于开源。
云平台种类:
-
GitHub(最主流)
- 国内访问速度慢
- 私有项目托管收费
-
gitee(国内盛行)
- 国产,速度快
- 私有托管免费
-
公司用gitlab或者svn来搭建
二. 云平台使用
1. 生成公钥
lcg@Django:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pyvip/.ssh/id_rsa): #此处可指定文件名,默认为/home/pyvip/.ssh/id_rsa。
#之后想用默认配置可一直 回车
2. 码云平台添加公钥
公钥用于本地向云平台传输数据的加密解密,所以要将公钥添加给云平台。
此处以码云平台为例:
1. 登陆码云,没有账号就注册
2. 进入用户界面,找不到可以用这个网址: https://gitee.com/profile/sshkeys
3. 添加公钥,将公钥粘贴进去
3. 码云平台创建仓库
之后就是常规操作
4. 初始化git
4.1 安装
#linux 安装git, 若已安装可使用 git --verdion查看
sudo apt install git
4.2 设置个人信息
# 全局配置个人信息
git config --global user.name user_name
git config --global user.email user_email
# 配置信息会保存在家目录下
pyvip@TL:~/MyProjects/.git$ more ~/.gitconfig
[user]
name = 张天铭
email = 就不告诉你
# 针对本项目的个人配置信息
git config user.name user_name
git config user.email user_emaila
# 配置信息出现在.git/config文件中
5 将仓库克隆到本地
采用ssh链接方式
-
获取远程仓库链接
1. 登陆码云平台,进入对应的仓库 3. 点击“克隆/下载”,复制ssh链接
-
克隆
#git clone 链接 git clone git@gitee.com:无名氏//无名仓库 #之后就会向当前文件夹下载远程仓库文件
三 将本地文件上传至码云
1 文件过滤
一些配置文件不想上传的可以编辑.gitignore
文件
#.gitignore
...
#文末写上文件名
my.cnf
2 Git结构
Git是分布式管理系统。服务器和客户端都有版本控制能力,都能进行代码的提交、合并、…
Git存储结构共有四个模块:Remote, Respository, Index, Workspace
- Remote:远程仓库,存在于(码云)平台服务器,存储整个项目的编码记录
- Respository:本地仓库, 对个人开发的一个小阶段代码存储
- 记录的各版本可以查看或者回退
- 但是在暂存区的版本一旦提交就再也没有了(保存到仓库区中)
- Index:暂存区,工作区和本地仓库之间的一个缓冲插件。
- Workspace:工作区,即开发区、也就是开发人员存储其编写的代码的地方
3 上传四部曲
2.1. git初始化
#cd 到对应目录下
git init
当前目录下生成.git
文件夹,存储关于git的信息。
2.2. 工作区提交到暂存区
# 添加项目中所有文件
git add .
或者
# 添加指定文件
git add models.py
2.3. 将暂存区文件提交到仓库区
git commit -m '一些描述'
2.4. 提交到远程仓库
首先,声明一个远程链接
#git remote add 别名 地址 地址即克隆的ssh链接
git remote add mayun1 git@gitee.com:无名氏/无名仓库.git
其实就是声明了一个变量mayun1
之后用它代表远程仓库地址;
其次,提交项目
#如果远程仓库有文件未下载,执行下面内容.表示将远程mayun1的master分支拉取过来和本地的当前分支进行合并。
git pull mayun1
#开始提交,git push 远程链接 分支
git push mayun1 master
四. git操作补充
git主要用于版本控制,下面讲述相关用法。
1. 查看版本
#查看远程仓库版本
git log #不做测试
$ git reflog
56008d9 HEAD@{0}: pull mayun1 master: Merge made by the 'recursive' strategy.
522ea23 HEAD@{1}: commit (initial): 测试
- git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录
- git log 不能察看已经删除了的commit记录
2. 回退版本
本质是用仓库中旧版本的文件替换当前项目文件
方法一:
HEAD
表示当前最新版本HEAD^
表示当前最新版本的前一个版本HEAD^^
表示当前最新版本的前两个版本,以此类推…HEAD~1
表示当前最新版本的前一个版本HEAD~10
表示当前最新版本的前10个版本,以此类推…
git reset --hard HEAD^
方法二:
当版本非常多时可选择的方案
# 通过每个版本的版本号回退到指定版本
git reset --hard 522ea23
#版本号右git reflog 可获得
3. 撤销修改
指的是用本地仓库文件替换工作区文件,以达到撤销效果。
git checkout 文件名
#执行后,该文件(文件夹)被覆盖重写
与reset不同,他不会更改HEAD指向的分支的指向。
4. 版本对比
1. 比较工作区与暂存区
git diff 不加参数即默认比较工作区与暂存区
2. 暂存区--本地仓库
git diff --cached <filepath> #比较暂存区与最新本地版本库
3. 工作区--本地仓库
git diff HEAD <filepath> #比较工作区与仓库最新版本 HEAD前可加^
4. 本地仓库提交1--本地仓库提交2
git diff commit1 commit2 #比较两次提交之间的差异
举个栗子
djfirst) zdq@python:~/DjProject/PerManager$ git diff HEAD HEAD^
diff --git a/test.py b/test.py
index 5f2f16b..58c9bdf 100644
--- a/test.py
+++ b/test.py
@@ -1 +1 @@
-1111
+111
#旧版本文件内容“111”新版本文件内容“1111”
5. 文件删除
#本地删除
ubuntu rm 即可
# 暂存区删除
git rm filepath
# 仓库删除
将暂存区删除结果提交即可,反之撤销修改见3. --checkout
塔卡教学很靠谱,赞一个!