电脑本地新建一个仓库到摄推送成功

电脑本地新建一个仓库到摄推送成功


以下是一个详细的 Git 教程,适用于在一台电脑绑定多个 Git 仓库的情况,涵盖从 git init 到推送代码的完整流程,带示例和错误排查提示。


1. 初始化本地仓库

步骤

  1. 进入你的项目目录:
BASH
1
cd /path/to/your/project
  1. 初始化 Git 仓库:
BASH
1
git init
  1. 添加项目文件并提交:
BASH
1
2
git add .
git commit -m "Initial commit"

2. 配置 SSH 多账户支持.ssh 目录中为每个账户生成不同的密钥对(如果尚未生成)

BASH
1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

为每个账户指定文件名,例如:

BASH
1
2
3
~/.ssh/id_rsa_github_one
~/.ssh/id_rsa_github_two
~/.ssh/id_rsa_gitlab

编辑 ~/.ssh/config~/.ssh/config 中配置多账户,示例如下:

PLAINTEXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# GitHub 账户 One
Host github_one
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github_one

# GitHub 账户 Two
Host github_two
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github_two

# GitLab 账户
Host gitlab
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa_gitlab

使用以下命令测试:

BASH
1
2
3
ssh -T git@github_one
ssh -T git@github_two
ssh -T git@gitlab

输出示例:

PLAINTEXT
1
Welcome to GitHub, @yourusername!

3. 绑定远程仓库

  1. 添加远程仓库:
BASH
1
git remote add origin git@<alias>:<username>/<repository>.git

示例:

BASH
1
git remote add origin git@gitlab:<username>/<repository>.git
  1. 检查绑定是否成功:
BASH
1
git remote -v
  1. 常见错误
  • remote origin already exists :表示远程仓库已存在,可以重新设置:
BASH
1
git remote set-url origin git@<alias>:<username>/<repository>.git

4. 获取远程仓库内容
如果远程仓库已有内容(例如 README 文件),需同步:

BASH
1
git pull origin main --rebase

常见错误

  • error: pathspec 'main' did not match :可能远程分支是 master 而不是 main,先列出远程分支:
BASH
1
git branch -r

切换到正确分支:

BASH
1
git branch -M main

5. 合并本地和远程内容
若有冲突,会显示类似以下内容:

PLAINTEXT
1
CONFLICT (content): Merge conflict in <file>

解决冲突后:

  1. 编辑冲突的文件以保留正确内容。

  2. 标记冲突已解决:

BASH
1
git add <file>
  1. 完成合并:
BASH
1
git commit

6. 推送代码到远程仓库
首次推送时,需设置本地分支与远程分支关联:

BASH
1
git push -u origin main

后续推送可直接使用:

BASH
1
git push

7. 总结完整流程
以下是完整流程代码示例:

BASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 进入项目目录
cd /path/to/your/project

# 初始化 Git 仓库
git init

# 添加项目文件并提交
git add .
git commit -m "Initial commit"

# 配置远程仓库
git remote add origin git@gitlab:<username>/<repository>.git

# 获取远程仓库内容并合并
git pull origin main --rebase

# 推送本地代码到远程
git push -u origin main

8. 注意事项与错误排查

  1. 分支名称不同
  • GitLab 默认分支为 main,但有时会是 master。检查远程分支:
BASH
1
git branch -r
  • 统一分支名称:
BASH
1
git branch -M main
  1. SSH 密钥未加载
  • 确保已加载正确的 SSH 密钥:
BASH
1
ssh-add ~/.ssh/id_rsa_gitlab
  • 检查已加载的密钥:
BASH
1
ssh-add -l
  1. 权限问题
  • 确认公钥已添加到远程仓库的 SSH 设置中。
  1. 配置文件未生效
  • 确保 ~/.ssh/config 的文件格式正确,关键字段如 HostNameIdentityFile 无误。

示例输出

测试 SSH 连接:

BASH
1
ssh -T git@gitlab

输出:

PLAINTEXT
1
Welcome to GitLab, @yourusername!

推送成功:

PLAINTEXT
1
2
3
4
5
6
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (5/5), 500 bytes | 500.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
To git@gitlab.com:<username>/<repository>.git
* [new branch] main -> main

希望这个教程能帮助到您!