当前位置:   article > 正文

CentOS-7.6 Linux下的git管理操作(代码上传同步至gitee码云)_centos please make sure you have the correct acces

centos please make sure you have the correct access rights

一、Linux中下载git

  • 进入CentOS
  1. yum命令
    • root用户:yum -y install git
    • 普通用户:sudo yum -y install git
  2. 安装成功后可查看git版本
    • git --version
    • 如下图表示安装成功:在这里插入图片描述

二、配置用户名及邮箱

  • 配置用户名:git config --global user.name "用户名"
  • 配置邮箱:git config --global user.email "邮箱"
  • 查看配置信息:git config --global --list
    • 如下图表示配置成功:在这里插入图片描述

三、拉取gitee码云远程库到Linux下

方式一:HTTPS(建议)

  1. 在gitee库上复制https链接
    在这里插入图片描述

  2. 拉取gitee远程仓库到Linux下:git clone "上面复制的https链接"

    • 输入gitee账户名和密码即可拉取,拉取显示结果:
      • ①若在root用户下拉取gitee远程仓库
        在这里插入图片描述
      • ②若在普通用户下拉取gitee远程仓库在这里插入图片描述

方式二:SSH公钥(不建议)

  1. 生成公钥

    • ssh-keygen -t rsa -C "邮箱"
    • 连续按3次回车
      • 如图显示:在这里插入图片描述
  2. 查看公钥

    • cat ~/.ssh/id_rsa.pub,将显示出的内容复制。
    • 此处不可用vim ~/.ssh/id_rsa.pub的方式查看复制公钥,因为格式会出错,只能复制用cat的方式显示出的公钥。
  3. gitee中添加公钥
    在这里插入图片描述

  4. 复制gitee远程库的SSH链接
    在这里插入图片描述

  5. 克隆库

    • 在Linux下进入所要放库的目录下:git clone "上面复制的SSH链接"
对于方式二远程库文件权限的修改
  • 问题背景:使用方式二(SSH公钥)拉取远程库到Linux下时,即使是普通用户,但可能拉取的库会出现权限无法写入且所属用户和所属组是root的情况。也因此在拉取的远程库中操作经常需要sudo,很不方便

    • 可能是如下图显示在这里插入图片描述
  • 解决(以下都是在普通用户下,root用户就不必sudo):

    • ① 修改仓库文件权限:
      • 将group的r-x修改成rwx
      • $ sudo chmod g+w linux_-daily-test
      • 修改后:在这里插入图片描述
    • ② 修改文件所属用户和组:
      • 只修改所属用户:sudo chown -R 用户名 库名

        • sudo chown -R wjq test:要加上-R选项,表示连同子目录中的所有文件,都更改所有者。否则的话在仓库中使用git命令仍需加sudo,无法做到任意使用git命令
        • 修改后结果如下:在这里插入图片描述
      • 只修改所属组:sudo chown -R :用户名 库名

        • sudo chown -R :wjq test
        • 修改后结果如下:在这里插入图片描述
    • 此时就可以正常,像普通文件一样在仓库文件下创建文件了,也不需要再sudo

四、git操作

  • 前提:cd进入远程库的目录下

1、拉取 – 同步远程仓库

[wjq@VM-8-15-centos test]$ git pull
  • 1

2、添加到远程库

  • 把当前目录都加进去
[wjq@VM-8-15-centos test]$ git add .
  • 1
  • 加入特定的文件
[wjq@VM-8-15-centos test]$ git add test.c
  • 1

3、上传说明

[wjq@VM-8-15-centos test]$ git commit -m "(说明修改的内容)"
  • 1

4、push

[wjq@VM-8-15-centos test]$ git push
  • 1
  • 整个过程图示:
    在这里插入图片描述

对于push可能会出现的一些问题

情况1:
  • 在push时有可能会报如下警告:
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 如上警告产生原因:
    • push.default没有设置push.default 默认的值。
    • 在Git 2.0下,从’matching’ 变成了’simple’.
      • 查看git版本的命令如下:
[wjq@VM-8-15-centos linux_-daily-test]$ git --version
git version 1.8.3.1
  • 1
  • 2
  • 解决方式:
//Git2.*以前:设置默认行为matching
 git config --global push.default matching  

//Git2.*以后:设置默认行为simple
 git config --global push.default simple  
  • 1
  • 2
  • 3
  • 4
  • 5
情况2:
[wjq@VM-8-15-centos test]$ git push
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 可能公钥出现错误了

    • 如:你在配置公钥时复制的公钥是在vim里复制的,就可能导致公钥无效
    • 解决方式:重新且正确地配置一次公钥
  • 如何查看是否解决:

    • ssh -T git@gitee.com 若能成功输出类似下方的内容即可。
[wjq@VM-8-15-centos ~]$ ssh -T git@gitee.com 
Hi 拾贰! You've successfully authenticated, but GITEE.COM does not provide shell access.
  • 1
  • 2

五、其他

  • 本文介绍的是Linux下的git操作,若想了解VS下的git相关操作,可参考我另一篇文章:
  • 仓库中已有的文件,但Linux上已经删除了,直接继续上传其他的就行
  • git pull相关的一些说明
    • 将原本从linux中向仓库中上传的文件删除后,而Linux上还存在,还使用了git pull,就会导致Linux中的文件删除
    • 而若是Linux上存在的文件,并且从未上传过仓库,此时使用git pull,并不会对Linux上未上传的文件造成影响

祝大家学习愉快 : )

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/184452
推荐阅读
相关标签
  

闽ICP备14008679号