在CentOS上克隆GitHub仓库需先安装Git并配置认证方式,推荐使用yum或dnf从官方源安装稳定版本,更新系统后执行sudo yum install git -y(CentOS 7)或sudo dnf install git -y(CentOS 8),安装后通过git --version验证;接着配置全局用户名和邮箱:git config --global user.name "用户名" 和 git config --global user.email "邮箱";克隆仓库时可选HTTPS或SSH方式,HTTPS需使用个人访问令牌(PAT)代替密码,执行git clone https://github.com/用户名/仓库名.git并在提示时输入PAT;SSH方式更便捷安全,需生成密钥对ssh-keygen -t rsa -b 4096 -C "邮箱",将公钥添加至GitHub的SSH keys中,再用git clone git@github.com:用户名/仓库名.git克隆;常见认证问题包括HTTPS因未用PAT导致失败,应生成PAT并可配置凭证缓存,SSH则常见于公钥未正确添加或ssh-agent未加载私钥,可通过ssh -T git@github.com测试连接,确保密钥存在且被正确识别。

在CentOS上克隆GitHub仓库,核心步骤无非是两点:先确保你的系统安装了Git这个版本控制工具,然后利用Git的
clone
要顺利在CentOS上安装Git并克隆GitHub仓库,我们通常会遵循以下步骤。这不仅仅是命令的堆砌,更是一种思维流程,确保你的环境是准备好的,并且知道如何应对可能出现的认证挑战。
首先,确保你的CentOS系统是最新的,这能避免一些不必要的依赖问题。
sudo yum update -y # CentOS 7及更早版本 # 或者 sudo dnf update -y # CentOS 8及更新版本
更新完成后,我们就可以安装Git了。CentOS的官方仓库通常会提供Git包,但版本可能不会是最新的。对于大多数日常使用,官方仓库的版本已经足够。
sudo yum install git -y # CentOS 7及更早版本 # 或者 sudo dnf install git -y # CentOS 8及更新版本
安装完成后,验证Git是否安装成功,并查看其版本:
git --version
接着,在使用Git之前,配置你的全局用户信息是良好的习惯,这会让你的每一次提交都带有你的身份信息。
git config --global user.name "你的GitHub用户名" git config --global user.email "你的GitHub注册邮箱"
这步很重要,因为它直接关联到你在GitHub上的提交记录。
现在,Git已经准备就绪,我们可以开始克隆GitHub仓库了。GitHub提供了两种主要的克隆方式:HTTPS和SSH。
1. 使用HTTPS方式克隆: 这是最直接的方式,你可以在GitHub仓库页面的“Code”按钮下找到HTTPS链接。
git clone https://github.com/你的用户名/你的仓库名.git
当你执行这个命令时,如果是私有仓库,Git会提示你输入GitHub的用户名和密码。注意: GitHub在2021年8月之后不再支持使用账号密码进行HTTPS认证,你需要使用个人访问令牌(Personal Access Token, PAT)作为密码。这可能是我遇到过最常见的“坑”了,很多新手会在这里反复尝试密码而不得其解。
2. 使用SSH方式克隆: SSH方式相对来说设置稍微复杂一些,但一旦设置好,后续操作会非常便捷,不需要每次都输入认证信息,特别适合频繁操作和私有仓库。 首先,你需要生成一对SSH密钥(如果还没有的话):
ssh-keygen -t rsa -b 4096 -C "你的GitHub注册邮箱"
一路回车即可,或者根据提示设置密码。生成的密钥默认在
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
然后,将你的公钥添加到GitHub账户。你可以通过以下命令查看公钥内容:
cat ~/.ssh/id_rsa.pub
复制显示的所有内容,登录GitHub,进入
Settings -> SSH and GPG keys -> New SSH key
最后,使用SSH链接克隆仓库:
git clone git@github.com:你的用户名/你的仓库名.git
第一次使用SSH连接GitHub时,系统可能会询问你是否信任该主机,输入
yes
在CentOS这样的企业级Linux发行版上,安装Git其实有几种路径,但为了稳定性和维护便利性,我个人最推荐的,也是最主流的,就是通过系统自带的包管理器来安装。
1. 使用yum
dnf
yum
dnf
# CentOS 7 sudo yum install git -y # CentOS 8 sudo dnf install git -y
这种方式的优点是:
yum update git
dnf update git
缺点可能就是,通过这种方式安装的Git版本,通常不会是最新版。对于大多数开发者来说,这通常不是问题,但如果你需要Git的最新特性,可能就需要考虑其他方法。
2. 通过EPEL仓库安装(获取较新版本): 如果官方仓库的Git版本太旧,而你又不想手动编译,可以考虑启用EPEL (Extra Packages for Enterprise Linux) 仓库。EPEL是一个由Fedora项目维护的,为RHEL及其衍生系统提供高质量额外软件包的仓库。启用EPEL后,你通常能安装到比官方仓库更新的Git版本。
# CentOS 7 sudo yum install epel-release -y sudo yum update -y sudo yum install git -y # CentOS 8 sudo dnf install epel-release -y sudo dnf update -y sudo dnf install git -y
安装步骤与普通安装类似,只是在之前多了一步安装
epel-release
3. 从源代码编译安装(不推荐,除非有特殊需求): 理论上,你总是可以从Git的官方网站下载源代码,然后手动编译安装。
# 示例命令,具体步骤可能因Git版本而异 sudo yum groupinstall "Development Tools" -y # 安装编译工具 sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker -y # 安装依赖 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-x.x.x.tar.gz # 下载最新版 tar -zxf git-x.x.x.tar.gz cd git-x.x.x make prefix=/usr/local all sudo make prefix=/usr/local install
这种方式的优点是:你能获得最新、最定制化的Git版本。 缺点非常明显:
yum/dnf
这两种克隆方式,HTTPS和SSH,是Git与远程仓库交互的两种主要协议。它们就像两条通往GitHub的道路,虽然都能达到目的地,但沿途的风景和通行规则却大相径庭。理解它们的区别,能帮助你根据自己的使用场景做出最佳选择。
1. HTTPS (Hypertext Transfer Protocol Secure) 方式:
git clone
git push
2. SSH (Secure Shell) 方式:
push
pull
~/.ssh/config
个人观点和选择建议: 对于我个人而言,SSH是首选,尤其是在进行日常开发工作时。 尽管初始设置略显繁琐,但其带来的便捷性和安全性是HTTPS无法比拟的。想象一下,你每天要推送十几次代码,每次都要输入那个长长的PAT,那会是多么令人抓狂的事情!SSH一旦配置好,基本就是“一劳永逸”。
然而,如果只是偶尔克隆一个公共仓库,或者在临时、不常使用的机器上进行操作,HTTPS会更方便快捷,因为它不需要你生成和管理SSH密钥。但请记住,对于私有仓库,你依然需要PAT。
总结来说:
认证问题是克隆GitHub仓库时最常见的拦路虎,尤其是GitHub对密码认证策略的调整后,很多开发者在这里踩过坑。解决这类问题,关键在于理解其背后的原理,并针对性地排查。
1. HTTPS方式的认证问题:
最常见的错误提示可能是
Authentication failed for 'https://github.com/...'
Settings
Developer settings
Personal access tokens
Tokens (classic)
Generate new token
repo
git config --global credential.helper store # 第一次输入PAT后,Git会将其存储在 ~/.git-credentials 文件中 # 或者使用更安全的缓存方式,例如 libsecret # git config --global credential.helper /usr/bin/git-credential-libsecret # 这通常需要安装额外的包,如 gnome-keyring 或 libsecret
credential.helper store
libsecret
2. SSH方式的认证问题:
SSH认证失败通常会提示
Permission denied (publickey)
fatal: Could not read from remote repository.
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
ls -al ~/.ssh/
如果没有,你需要重新生成:
ssh-keygen -t rsa -b 4096 -C "你的GitHub注册邮箱"
cat ~/.ssh/id_rsa.pub
Settings -> SSH and GPG keys
ssh-rsa
ssh-agent
eval "$(ssh-agent -s)" # 启动ssh-agent ssh-add ~/.ssh/id_rsa # 添加私钥,如果私钥有密码会提示输入
运行
ssh-add -l
ssh-agent
ssh -T git@github.com
如果一切正常,你会看到
Hi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access.
Permission denied
~/.ssh/config
Host github.com
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa # 确保指向正确的私钥文件
# 或者如果你有多个密钥,可以指定不同的
# IdentityFile ~/.ssh/id_rsa_your_other_key总结一下我的经验:
大多数SSH认证问题都出在公钥没有正确添加到GitHub或者ssh-agent
以上就是CentOS中怎么克隆Github_CentOS安装Git与克隆仓库教程的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号