电脑本地新建一个仓库到摄推送成功
以下是一个详细的 Git 教程,适用于在一台电脑绑定多个 Git 仓库的情况,涵盖从 git init
到推送代码的完整流程,带示例和错误排查提示。
1. 初始化本地仓库
步骤
- 进入你的项目目录:
BASH1
| cd /path/to/your/project
|
- 初始化 Git 仓库:
- 添加项目文件并提交:
BASH1 2
| git add . git commit -m "Initial commit"
|
2. 配置 SSH 多账户支持 在 .ssh
目录中为每个账户生成不同的密钥对(如果尚未生成)
BASH1
| ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
|
为每个账户指定文件名,例如:
BASH1 2 3
| ~/.ssh/id_rsa_github_one ~/.ssh/id_rsa_github_two ~/.ssh/id_rsa_gitlab
|
编辑 ~/.ssh/config
在 ~/.ssh/config
中配置多账户,示例如下:
PLAINTEXT1 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
|
使用以下命令测试:
BASH1 2 3
| ssh -T git@github_one ssh -T git@github_two ssh -T git@gitlab
|
输出示例:
PLAINTEXT1
| Welcome to GitHub, @yourusername!
|
3. 绑定远程仓库
- 添加远程仓库:
BASH1
| git remote add origin git@<alias>:<username>/<repository>.git
|
示例:
BASH1
| git remote add origin git@gitlab:<username>/<repository>.git
|
- 检查绑定是否成功:
- 常见错误 :
remote origin already exists
:表示远程仓库已存在,可以重新设置:
BASH1
| git remote set-url origin git@<alias>:<username>/<repository>.git
|
4. 获取远程仓库内容
如果远程仓库已有内容(例如 README 文件),需同步:
BASH1
| git pull origin main --rebase
|
常见错误 :
error: pathspec 'main' did not match
:可能远程分支是 master
而不是 main
,先列出远程分支:
切换到正确分支:
5. 合并本地和远程内容
若有冲突,会显示类似以下内容:
PLAINTEXT1
| CONFLICT (content): Merge conflict in <file>
|
解决冲突后:
编辑冲突的文件以保留正确内容。
标记冲突已解决:
- 完成合并:
6. 推送代码到远程仓库
首次推送时,需设置本地分支与远程分支关联:
后续推送可直接使用:
7. 总结完整流程
以下是完整流程代码示例:
BASH1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| cd /path/to/your/project
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. 注意事项与错误排查
- 分支名称不同 :
- GitLab 默认分支为
main
,但有时会是 master
。检查远程分支:
- SSH 密钥未加载 :
BASH1
| ssh-add ~/.ssh/id_rsa_gitlab
|
- 权限问题 :
- 配置文件未生效 :
- 确保
~/.ssh/config
的文件格式正确,关键字段如 HostName
和 IdentityFile
无误。
示例输出
测试 SSH 连接:
输出:
PLAINTEXT1
| Welcome to GitLab, @yourusername!
|
推送成功:
PLAINTEXT1 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
|
希望这个教程能帮助到您!