news 2026/4/15 17:59:21

GIT使用方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GIT使用方法

目录

SSH方式

成员添加公钥到自己的 GitLab 账户

具体使用场景

场景1:新成员第一次拉取代码

场景2:提交代码

场景3:提交代码到仓库

查看自己的权限

四、权限管理和访问控制

GitLab 中的权限级别

五、团队协作最佳实践

分支策略示例

避免冲突的工作流程

六、问题排查和调试

测试 SSH 连接

检查 Git 配置

解决权限被拒绝问题

七、为团队成员提供的一键设置脚本

八、管理员操作指南

添加团队成员到项目

设置分支保护规则

九、总结

SSH Key 使用规则:

HTTPS+ Personal Access Token

方案B:使用 HTTPS + Personal Access Token(推荐)

三、不同认证方式对比

四、使用 Personal Access Token 的完整流程

1. 生成 Token

2. 克隆仓库

3. 设置自动认证

五、一键配置脚本

六、如果坚持使用 SSH 密钥认证

1. 验证您的密钥是否有效

2. 检查 GitLab 是否接受您的密钥

3. 使用标准长度的密钥

七、推荐的解决方案

对于生产环境部署:

对于个人开发:

八、故障排除

问题:Token 认证失败

问题:凭证不被保存

九、总结


SSH方式

在本地git命令行执行:ssh-keygen -t ed25519 -C "your_email@example.com" -f /root/.ssh/id_ed25519

其中ed25519是密钥文件名字 "your_email@example.com" 是一个提示可以任意填写

-f后面的 /root/.ssh/id_ed25519 是保存的位置

这条命令会生成2个文件。后缀有pub的要粘贴到放在git服务端的SSH key里 作为公钥

没有这个后缀的是私钥保存在本地,使用git的时候会携带私钥发送到git服务端。服务端根据私钥用公钥进行身份认证。弱国本地删除了私钥就会认证失败无法使用git。

成员添加公钥到自己的 GitLab 账户

  1. 登录 GitLab

  2. 点击头像 →Edit profile

  3. 左侧SSH Keys

  4. 粘贴公钥:cat ~/.ssh/id_ed25519.pub

  5. 添加描述,点击Add key

# 在 GitLab 网页操作:
# 项目 → Settings → Members
# 添加成员,设置权限级别:
# - Maintainer: 管理权限
# - Developer: 开发权限(可以推送)
# - Reporter: 只读权限

具体使用场景

场景1:新成员第一次拉取代码

# 1. 克隆仓库 git clone git@192.168.1.1:admin/xiangmu342.git # 2. 进入项目目录 cd xiangmu342 # 3. 配置用户信息(重要!) git config user.name "张三" git config user.email "zhangsan@company.com" # 4. 查看项目状态 git status

场景2:提交代码

# 拉取远程最新代码 git pull origin main # 或分步操作 git fetch origin git merge origin/main

场景3:提交代码到仓库

# 1. 修改文件后添加到暂存区 git add . # 2. 提交更改 git commit -m "描述本次修改的内容" # 3. 推送到远程仓库 git push origin main
查看自己的权限
# 在仓库目录中查看远程信息 git remote show origin

四、权限管理和访问控制

GitLab 中的权限级别

五、团队协作最佳实践

分支策略示例

# 1. 主分支保护 git checkout main git pull origin main # 2. 创建功能分支 git checkout -b feature/新功能名称 # 3. 开发完成后提交 git add . git commit -m "完成新功能开发" # 4. 推送到远程 git push origin feature/新功能名称 # 5. 在 GitLab 创建 Merge Request
避免冲突的工作流程
# 每天开始工作前 git checkout main git pull origin main # 创建新分支 git checkout -b feature/当天工作内容 # 工作完成后 git add . git commit -m "完成工作内容" git push origin feature/当天工作内容

六、问题排查和调试

测试 SSH 连接
# 测试到 GitLab 的连接 ssh -T git@192.168.60.36 # 如果失败,检查密钥 ssh -vT git@192.168.60.36 # 详细模式
检查 Git 配置
# 查看当前用户配置 git config --list # 查看仓库特定配置 git config --local --list
解决权限被拒绝问题
# 如果出现 Permission denied # 1. 检查 SSH 密钥是否正确添加 # 2. 检查项目成员权限 # 3. 检查分支保护规则

七、为团队成员提供的一键设置脚本

创建team_setup_guide.sh

#!/bin/bash echo "=== GitLab 团队成员设置指南 ===" # 检查当前用户 CURRENT_USER=$(whoami) echo "当前用户: $CURRENT_USER" # 生成 SSH 密钥 echo "1. 生成 SSH 密钥..." ssh-keygen -t ed25519 -C "${CURRENT_USER}@gitlab" -f ~/.ssh/id_ed25519 -N "" # 设置权限 chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub # 显示公钥 echo -e "\n2. 请将以下公钥添加到 GitLab:" echo "======================================" cat ~/.ssh/id_ed25519.pub echo "======================================" echo -e "\n3. 添加步骤:" echo " - 登录 GitLab: https://192.168.60.36" echo " - 点击头像 → Edit profile → SSH Keys" echo " - 粘贴上面的公钥内容" echo " - 点击 Add key" echo -e "\n4. 测试连接:" ssh -T git@192.168.60.36 echo -e "\n5. 克隆仓库命令:" echo " git clone git@192.168.60.36:Administrator/bztongyong.git" echo -e "\n6. 配置用户信息:" echo " git config user.name \"您的姓名\"" echo " git config user.email \"您的邮箱@company.com\""

八、管理员操作指南

添加团队成员到项目

# 在 GitLab 网页操作: # 1. 进入项目 → Settings → Members # 2. 输入用户名或邮箱 # 3. 选择权限级别 # 4. 点击 Add to project
设置分支保护规则
# 项目 → Settings → Repository → Protected Branches # 保护 main 分支,只允许 Maintainer 推送

九、总结

SSH Key 使用规则:
  • 每个用户一个密钥对,不是每个仓库

  • 一个密钥可以访问所有有权限的仓库

  • 管理员控制每个成员对每个仓库的访问权限

团队成员工作流程:

  1. 生成自己的 SSH 密钥对

  2. 将公钥添加到自己的 GitLab 账户

  3. 等待管理员将自己添加到项目成员

  4. 克隆仓库:git clone git@地址/项目.git

  5. 配置用户信息:git config user.name "姓名"

  6. 日常开发:拉取 → 修改 → 提交 → 推送

管理员工作流程:

  1. 创建项目

  2. 添加团队成员并设置权限

  3. 配置分支保护规则

  4. 管理 Merge Request

这样,团队中的每个成员都可以使用自己的 SSH Key 安全地拉取和提交代码

HTTPS+ Personal Access Token

方案B:使用 HTTPS + Personal Access Token(推荐)

步骤1:生成 Personal Access Token

  1. 登录 GitLab → 点击头像 →Edit profile

  2. 左侧菜单选择Access Tokens

  3. 填写信息:

    Token name: Git CLI Access Expiration date: 可选 Scopes: ✅ 勾选 api 和 read_repository
  4. 点击Create personal access token

  5. 复制生成的令牌(只显示一次!)

步骤2:使用 Token 克隆

# 克隆仓库 git clone https://192.168.60.36/Administrator/bztongyong.git # 认证信息: Username: 可以填任意值,比如 git Password: 粘贴您的 Token(如 glpat-xxxxxxxxxxxxxxxxxx)

步骤3:配置凭证存储(避免重复输入)

# 缓存凭证(15分钟) git config --global credential.helper cache # 永久存储凭证(保存到文件) git config --global credential.helper store # 或使用内存缓存 git config --global credential.helper 'cache --timeout=3600'

三、不同认证方式对比

认证方式

安全性

便利性

配置复杂度

推荐度

SSH 密钥

高(配置后免密)

中等

⭐⭐⭐⭐⭐

HTTPS + Token

中(需管理Token)

简单

⭐⭐⭐⭐

HTTPS + 密码

低(已弃用)

简单

❌ 不推荐

四、使用 Personal Access Token 的完整流程

1. 生成 Token

在 GitLab 中:

Settings → Access Tokens → 创建 Token 权限:api, read_repository, write_repository

2. 克隆仓库

git clone https://192.168.60.36/Administrator/bztongyong.git # 用户名:git # 密码:glpat-xxxxxxxxxxxxxxxxxx

3. 设置自动认证

# 方法1:在 URL 中嵌入 Token git clone https://gitlab-ci-token:glpat-xxxxxxxxxxxxxxxxxx@192.168.60.36/Administrator/bztongyong.git # 方法2:使用凭证助手 git config --global credential.helper store # 第一次输入后会自动保存

五、一键配置脚本

创建setup_https_auth.sh

#!/bin/bash echo "=== 配置 Git HTTPS 认证 ===" # 1. 修改远程地址为 HTTPS if [ -d ".git" ]; then echo "当前仓库已存在,修改远程地址为 HTTPS..." git remote set-url origin https://192.168.60.36/Administrator/bztongyong.git else echo "使用 HTTPS 克隆仓库..." git clone https://192.168.60.36/Administrator/bztongyong.git cd bztongyong fi # 2. 配置凭证存储 echo "配置凭证存储(缓存1小时)..." git config --global credential.helper 'cache --timeout=3600' # 3. 显示配置信息 echo -e "\n=== 配置完成 ===" echo "远程地址:" git remote -v echo -e "\n=== 使用说明 ===" echo "1. 第一次操作时会提示输入用户名和密码" echo "2. 用户名:git 或 Administrator" echo "3. 密码:使用 Personal Access Token(不是登录密码)" echo "4. Token 生成位置:GitLab → Settings → Access Tokens" echo "5. 需要勾选权限:api, read_repository" echo -e "\n=== 获取 Token 的步骤 ===" echo "1. 登录 GitLab (https://192.168.60.36)" echo "2. 点击右上角头像 → Edit profile" echo "3. 左侧菜单选择 Access Tokens" echo "4. 创建 Token,勾选所需权限" echo "5. 复制生成的 Token(只显示一次!)" echo -e "\n=== 测试连接 ===" read -p "是否现在测试拉取?(y/n): " test_pull if [[ $test_pull =~ ^[Yy]$ ]]; then git pull origin main fi

六、如果坚持使用 SSH 密钥认证

如果您想继续用 SSH 但遇到问题,可以尝试:

1. 验证您的密钥是否有效

# 测试密钥连接 ssh -vT git@192.168.60.36 2>&1 | grep -i "authenticat"

2. 检查 GitLab 是否接受您的密钥

# 查看公钥指纹 ssh-keygen -lf /root/.ssh/id_rsa.pub # 确保指纹与 GitLab 中显示的一致

3. 使用标准长度的密钥

# 生成标准的 RSA 2048 密钥 rm -f /root/.ssh/id_rsa* ssh-keygen -t rsa -b 2048 -C "git@192.168.60.36"

七、推荐的解决方案

对于生产环境部署:

# 使用 Personal Access Token 最稳定 git clone https://gitlab-ci-token:${GITLAB_TOKEN}@192.168.60.36/项目.git # 设置环境变量 export GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxx

对于个人开发:

# 使用 SSH 密钥更方便 ssh-keygen -t ed25519 -C "your-email@example.com" # 添加公钥到 GitLab

八、故障排除

问题:Token 认证失败

# 检查 Token 权限是否足够 # 需要至少 read_repository 权限 # 检查 Token 是否过期 # 重新生成 Token

问题:凭证不被保存

# 清除旧凭证 git credential reject protocol=https host=192.168.60.36 [按 Ctrl+D 结束] # 重新配置 git config --global credential.helper store

九、总结

"其他验证登录方式"主要指:

  1. HTTPS + Personal Access Token(推荐替代方案)

    • 在 GitLab 生成 Token

    • 克隆时使用 HTTPS 地址

    • 用户名填git,密码填 Token

  2. HTTPS + 密码(已弃用,不推荐)

  3. 🔧修正 SSH 密钥问题

    • 确保使用标准密钥长度(2048/4096)

    • 或使用 ED25519 密钥

最简单的操作步骤:

# 1. 在 GitLab 生成 Personal Access Token # 2. 使用 HTTPS 克隆 git clone https://192.168.60.36/Administrator/bztongyong.git # 3. 用户名:git # 4. 密码:粘贴 Token # 5. 配置凭证缓存 git config --global credential.helper cache
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 17:58:32

27、深入探索 Active Directory 对象的创建、管理与操作

深入探索 Active Directory 对象的创建、管理与操作 1. Active Directory 迁移工具(ADMT)概述 管理员可使用 ADMT 在不同林的 Active Directory 域之间(林间迁移)以及同一林的 Active Directory 域之间(林内迁移)迁移用户、组和计算机。不过,当时 Windows Server 2012…

作者头像 李华
网站建设 2026/4/15 17:57:29

35、网络安全管理全解析

网络安全管理全解析 1. 网络安全管理的重要性 在当今数字化时代,保障网络安全是 IT 人员的核心任务之一。确保只有需要访问资源的人员能够获取这些资源,不仅能防止黑客攻击,还能避免内部人员的误操作或恶意行为对数据造成损害。 2. 网络安全管理的关键领域 网络安全管理…

作者头像 李华
网站建设 2026/4/15 17:58:31

36、网络安全管理全解析

网络安全管理全解析 在多域环境中,网络安全管理是一项复杂而重要的任务。下面将详细介绍网络安全管理的多个方面,包括用户组、权限管理、审计策略等内容。 1. 特殊用户组与外部安全主体 在网络环境中,存在 DHCP Users 和 DHCP Administrators 组,这些组的用途取决于所安…

作者头像 李华
网站建设 2026/4/10 9:07:11

39、TCP/IP子网划分全解析

TCP/IP子网划分全解析 1. 子网划分概述 子网划分是将单个IP网络划分为更小的逻辑子网的过程。它通过细分IP地址的主机部分来创建子网地址,具体通过子网掩码实现。 2. 实施子网划分 在实施子网划分之前,需要确定当前需求并规划最佳实施方案: - 确定子网需求 : 1. 确…

作者头像 李华
网站建设 2026/4/15 3:45:26

42、深入了解 Windows Server 2012 R2 中的 Hyper-V 虚拟化技术

深入了解 Windows Server 2012 R2 中的 Hyper-V 虚拟化技术 1. 虚拟化与 Hyper-V 概述 Hyper-V 是 Windows Server 2012 R2 中的一个服务器角色,它能让你实现环境的虚拟化,从而在一台物理服务器上同时运行多个虚拟操作系统实例。这不仅有助于提高服务器利用率,还能创建更具…

作者头像 李华
网站建设 2026/4/13 8:38:40

Linly-Talker多语言支持能力测试报告

Linly-Talker多语言支持能力深度解析 在虚拟主播直播间里,一位数字人正用流利的西班牙语介绍新款家电;转眼间,她又切换成日语为另一位观众解答问题。这背后并非复杂的多套系统切换,而是同一套AI驱动的数字人平台——Linly-Talker&…

作者头像 李华