首先这个问题是怎么来的呢?
由于我本人是计算机菜鸟,在提交 PR 的时候没有使用 git 命令,而选择了简单的 web 可视化界面,如图 1,导致我的 commit 多达五十几条,如图 2。但是由于 PR 合入 master 后,多个 commit id 会存在 master 主干上,导致很多麻烦,因此要把图 2 圈圈里的数字调整成 1。
图 1 gitee 上的 web 提交方式
图 2 commit 记录
那么怎么解决这个问题呢?
首先要先了解一下 git 基础。
一、连接gitee 建立本地git仓库和远程仓库的连接
git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱" //邮箱在设置-多邮箱管理-我的邮箱
二、生成SSH key公钥
ssh-keygen -t rsa -C "你注册的邮箱" // 一路回车
三、生成成功后你可以在 C 盘/用户/你的用户名 /.ssh 目录下面找到 id_rsa.pub 文件,复制文件里面的内容,到 gitee 网站中,进入设置 -> 安全设置 -> SSH 公钥,在公钥输入框中粘贴你复制的内容,标题自动填充,点击确定。
四、 把在 gitee 上 fork 下来的仓库 clone 下来
git clone https://gitee.com/your_git_id/models.git
五、使用 git log 命令查看操作记录,可以看到 commit id 。
六、由于我这里的 commit 太多了,我直接从 gitee 上复制了第一次提交的 commit id然后用 git reset 命令回退到第一次 commit,在此之前一定要保存好要提交的代码。命令详解参见git reset 命令 | 菜鸟教程 (runoob.com)
git reset --hard commit id
七、在本地仓库对代码进行修改,例如新建文件夹,新建文件等等(我这一步是直接将提前保存好的代码文件夹粘贴到本地仓库了)。然后用 git add . 命令(后面还有个点哦)添加当前目录下的所有文件到暂存区,详见git add 命令 | 菜鸟教程 (runoob.com),再用 git commit -m “对本次提交的描述” 命令将暂存区内容添加到本地仓库中,详见git commit 命令 | 菜鸟教程 (runoob.com)。
git add .
git commit -m "描述"
八、用 git push 命令将本地仓库上传到远程仓库。详见git push 命令 | 菜鸟教程 (runoob.com)
九、此时 git log 一下会发现有两条 commit 记录,然后就是 git rebase -i 命令了,详见【Git】rebase 用法小结 - 简书 (jianshu.com)
十、再次 push
这里出现了fatal: unable to access 'https://gitee.com/mm-xin/models.git/': OpenSSL SSL_connect: Connection was reset in connection to gitee.com:443,执行下面两条命令之后再次push。
git config --global --unset http.proxy
git config --global --unset https.proxy
最终结果提交记录成功变成 1 了:
ps:本人小小菜鸟希望能得到各路大神的指导。