盒子
盒子
文章目录
  1. 前戏
  2. 配置
    1. 全局配置
    2. 针对项目配置
    3. 查看当前配置
  3. 本地生成 SSH 公钥,并在 gitee 配置.
    1. 生成公钥
    2. 查询公钥
    3. 配置
  4. 一些坑
    1. 修改代码后 push 失败
    2. push 不成功
  5. 常用命令
    1. 将本地库与远程库关联
    2. 关联其它操作
    3. clone 某分支
    4. 回到某版本
    5. 强制 push
    6. 同步云端代码至本地
    7. 其他

从 git 合作管理 gitee 项目浅谈

前戏

下载安装 git.

当然,大多数操作不只适用于 gitee.github,coding…这类 git 协作管理工具原理都一样.

配置

全局配置

该配置是全局配置,对于不同的管理工具,只要用的一套邮箱和密码,都可以使用。

git config --global user.name "在gitee的名字或昵称"
git config --global user.email "gitee注册使用的邮箱"

针对项目配置

需要在项目根目录下进行配置。

git config user.name "Your Name"

git config user.email "Your email"

查看当前配置

git config --list 查看当前配置

本地生成 SSH 公钥,并在 gitee 配置.

Gitee帮助文件

在配置好用户名和密码后,可以进行生成公钥。

生成公钥

ssh-keygen -t rsa -C "xxxxx@xxxxx.com(你的邮箱)"

连续按三次回车,使用默认配置即可

查询公钥

cat ~/.ssh/id_rsa.pub

这一步是查询公钥,把显示的东西全复制下来复制下来即为公钥
也可以打开C:\用户\Users.ssh中的id_rsa.pub文件查看公钥
用记事本打开即可

配置

复制下来在网站的配置SSH公钥处粘贴上即可。

然后就可以本地与云端同步啦。

一些坑

修改代码后 push 失败

(协作项目其他人已取得管理权限等同理…)

Authentication failed for “https://gitee.com....."

输入账号密码登录,出现这类报错。

使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(Git的Remote要使用SSH地址)
gitee官方说明

因为克隆下来的代码默认以https方式与仓库关联,故重新关联。
先查询

git remote -v
若为
origin https://gitee.com/hqweay/BookShopping.git (fetch)
origin https://gitee.com/hqweay/BookShopping.git (push)
这类信息,则说明为https关联

先删除关联

git remote rm 关联库名

查询是否删除成功

git remote -v
无信息则说明删除关联成功

再用SSH方式绑定,

git remote add origin git@gitee.com:hqweay/BookShopping.git

查询,若信息为

origin git@gitee.com:hqweay/BookShopping.git (fetch)
origin git@gitee.com:hqweay/BookShopping.git (push)

则可以push代码了。

push 不成功

push 不成功还有可能是 gitee 项目(远程仓库)中有本地项目不存在的文件,比如建立 gitee 项目时引入了 readme.md

git pull –rebase origin master

执行该命令 让gitee与本地代码合并

再执行push

  • 提示本地项目没有文件

执行push命令前需要

git add .

git commit -m “提交说明”

常用命令

将本地库与远程库关联

git remote add origin git@server-name:path/repo-name.git

origin 为本地库的关联名

一个本地库关联多个远程库,就是通过更改origin这一项的名字实现的。

比如:

git remote add One git@github.com:hqweay/a.git

git remote add Two git@gitee.com:hqweay/a.git

就实现了一个本地库关联两个远程项目,需要进行操作时就分别通过名称One,Two来操作。

关联其它操作

删除关联 git remote rm origin

查询关联 git remote -v

clone 某分支

git clone git@gitee.com:hqweay/BookShopping.git -b 1.0

回到某版本

  1. 使用 git log 命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的 id 是 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96。
  2. git reset –hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96
  3. 把修改推到远程服务器git push -f -u origin master

强制 push

git push -u origin master -f

强制 push,之前的 commit 都会被清除…

同步云端代码至本地

git pull origin 分支名

其他

还有一些问题,以前遇到过但没有记录下来,现在先大致把问题列出来,以后遇到了再完善

  • 删除本地某次 commit(比如最近一次不小心把 密码 add 了)
  • 删除线上某次 commit