OC学习28:Gitee使用探索

张建 lol

Gitee

由于入职新公司:中国图书进出口集团总公司,领导要求使用 码云,即 Gitee,所以我也用了这个代码管理平台,使用流程和其他 Github 等都差不多,流程如下:

  1. 登录gitee,新建仓库:

  1. 填写仓库信息,注意选择 内部开源

  1. 提交 完成仓库创建

  1. 配置ssh公钥,进入设置:

  1. 找到 安全设置 -> ssh公钥,将电脑的公钥配置到仓库

  1. 查看本地已经生成的秘钥:

跳转到 .ssh 文件夹下:

1
2
3
4
mac@MacdeMBP ~ % cd ~/.ssh
mac@MacdeMBP .ssh % ls
id_rsa id_rsa.pub known_hosts
mac@MacdeMBP .ssh %

查看当前文件夹下的 id_rsa.pub:

1
2
3
mac@MacdeMBP .ssh % cat id_rsa.pub

此处显示的省略...
  1. 生成新的 ssh 公钥
  • 在gitee上添加主邮箱地址(一般为公司邮箱)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
邮箱为Gitee上的邮箱地址
mac@MacdeMacBook-Pro .ssh % ssh-keygen -t rsa -C "zhangjian@epod.cn"

然后一路回车
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mac/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/mac/.ssh/id_rsa.
Your public key has been saved in /Users/mac/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:U3F8eYroeZjnks6UWT5JJdxSRwckPZ+FYPO1pcfF98A zj@fjreading.com
The key's randomart image is:
+---[RSA 2048]----+
| ..*=+*B|
| =.*E=X|
| ..+o=BB|
| .. .+.oo|
| S. +o |
| .=*o. |
| +=+ |
| oo .. |
| .o. |
+----[SHA256]-----+
mac@MacdeMacBook-Pro .ssh %

将本地已存在的代码文件推送到远程Gitee

  1. 初始化本地仓库
1
2
mac@MacdeMBP SRSF % git init
Initialized empty Git repository in /Users/mac/Desktop/SRSF/.git/

初始化了一个空的仓库

  1. 关联本地仓库和远程仓库
1
2
mac@MacdeMBP SRSF % git remote add origin https://gitee.com/epod/private-study-ios-app.git

这样就完成了版本的一次初始化。

  1. 拉取远程仓库 master 主分支代码
1
2
3
4
5
6
7
8
9
10
11
12
13
mac@MacdeMBP SRSF % git pull origin master

warning: no common commits
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.
From https://gitee.com/epod/private-study-ios-app
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
fatal: refusing to merge unrelated histories

此时,你输入 git branch,你 本地 就会默认生成一个存在 master主分支

1
2
3
mac@MacdeMBP SRSF % git branch
* master

  1. 将当前目录所有文件添加到git暂存区
1
mac@MacdeMBP SRSF % git add .
  1. 提交并备注提交信息
1
mac@MacdeMBP SRSF % git commit -m "first commit"
  1. 在本地创建一个自己的分支 zj_feature,并切换到 zj_feature 分支
1
2
3
4
5
6
mac@MacdeMBP SRSF % git branch zj_feature
mac@MacdeMBP SRSF % git checkout zj_feature
Switched to branch 'zj_feature'
mac@MacdeMBP SRSF % git branch
master
* zj_feature
  1. 在Gitee上新建一个分支 zj_feature ,推送 本地分支(zj_feature)远程分支(zj_feature)
  • 如果提示让你输入用户名和密码(一般会在新Mac上出现这种情况):

    只需要将你的gitee上的 用户名密码 输入即可

  • 如果提示如下:

1
2
3
4
5
6
7
8
mac@MacdeMBP SRSF % git push origin zj_feature
To https://gitee.com/epod/private-study-ios-app.git
! [rejected] zj_feature -> zj_feature (non-fast-forward)
error: failed to push some refs to 'https://gitee.com/epod/private-study-ios-app.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

上面的意思是让我先执行 git pull ... 拉取,但是我执行 git pull origin zj_feature 还是有问题。

原因:在新建仓库时,如果在 码云 平台仓库上已经 存在 readme其他文件,在提交时可能会`存在冲突

  1. 解决办法:忽略历史文件,在终端输入:$git pull origin zj_feature --allow-unrelated-histories

  1. 最后执行 git push origin zj_feature 到 远程仓库 zj_feature 分支上

上图代表的是提交成功了

常见问题解决

  1. 本地分支和远程分支出现代码冲突,则直接强制覆盖推送
1
git push origin zj_feature --force
  1. 远程分支没有关联,则强制合并远程分支
1
mac@MacdeMBP SRSF % git push origin zj_feature:developer --force
  1. 远程分支 developermaster 代码出现冲突,强制合并两个远程分支:

1)如果想要在终端强制合并两个远程分支,需要在本地有此两个分支,一般情况下可能没有 developer 本地分支,如果没有则创建:

mac@MacdeMBP SRSF % git branch developer

2)切换分支到本地 developer 上:

mac@MacdeMBP SRSF % git checkout branch developer

3)推送最新代码到远程 developer 分支上

mac@MacdeMBP SRSF % git push origin developer

4)强制合并 developermaster 远程分支

mac@MacdeMBP SRSF % git push origin developer:master -f

  • Post title:OC学习28:Gitee使用探索
  • Post author:张建
  • Create time:2020-09-22 12:55:43
  • Post link:https://redefine.ohevan.com/2020/09/22/OC/OC学习28:Gitee使用探索/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.