目录
- 我的学习过程
- git环境配置(Mac版)
- git原理图
- git的push操作思路
- 遇到的问题
我的学习过程
昨天重写了一遍聊天程序,准备提交到git上进行代码管理。结果遇到了不少问题。我照着网上的教程进行操作,一步一步踩了很多坑。
git环境配置(Mac版)
- 首先在github上注册了自己的账号。
- 然后需要在我的mac电脑上安装git环境。在终端输入git --version,得到
git version 2.24.1 (Apple Git-126)
说明我的mac自带了git,无需再安装git。
- 创建一下全局用户名、全局邮箱
git config --global user.name "用户名"
git config --global user.email "邮箱"
- 然后打开终端,执行cd ~,进入根目录,输入ssh-keygen命令生成ssh-key,一直按回车到出现randomart image,如下图
网上找的图:
-
在/Users/自己的用户名/.ssh/目录找到id_rsa.pub文件,打开,全选,复制key。(注意:此为隐藏文件,使用command+shift+.可以显示或隐藏这类文件)。
-
登录github,进入setting-SSH and GPG keys,点击new SSH key。把第五步保存的key粘贴到key的框框里,title随便填一个。
-
idea中配置git。idea顶部栏中打开Preferences…-Version Control-Github,登录自己的github账号。
git原理图
网上找的图:
git的push操作思路
- 在github上创建一个与项目同名的仓库(若仓库进行了修改,后续第一次push前也要pull一下,这是一个坑)。
- workspace的项目先add到index(暂存区),然后初始化一个本地仓库,再commit到本地仓库,最后从本地仓库push到远程仓库的一个分支上。
遇到的问题
我的操作:
git init
git commit -m "first commit"
【问题】:nothing added to commit but untracked files present。出现了多个未跟踪的文件(untracked files):
由于未跟踪的文件的存在,commit什么也没有提交上去。
重复执行了一遍:
git commit -m "first commit"
上述问题未在出现。原因不明。
我继续执行:
git remote add origin git@github.com:zero945-gift/serverdemo.git
【问题】failed to push some refs to ‘git@github.com:zero945-gift/serverdemo.git’。更新被拒绝,因为远程仓库的work中缺少了本地仓库的信息。
【思考】:项目名是clientdemo,仓库的项目名要与之同名。同时应该更改目标远程仓库的地址,使用add并不能更改地址要使用set-url。
应该使用:
git remote set-url origin git@github.com:zero945-gift/clientdemo.git
查看远程仓库地址:
git remote -v
显示如下:
origin git@github.com:zero945-gift/clientdemo.git (fetch)
origin git@github.com:zero945-gift/clientdemo.git (push)
说明远程仓库的地址已经更正过来了。
我执行push:
git push -u origin master
【又重复问题】failed to push some refs to ‘git@github.com:zero945-gift/clientdemo.git’。更新被拒绝,因为远程仓库的work中缺少了本地仓库的信息。
【思考】阅读黄字hint中的提示:push前git pull …一下
我继续执行:
git pull origin master
【fatal信息】: refusing to merge unrelated histories。
百度一下后,了解,执行:
git pull origin master --allow-unrelated-histories
再执行push
git push -u origin master
提示done,成功push了。