配置账户信息
参考连接:本地Git配置绑定远程Github账户
git config --global user.name "Kikihqq" # 这里是 github 注册的账号(用户名)
git config --global user.email "HuiqingZh@outlook.com" # github 注册的邮箱
# 查看 git 账号信息
git config user.name
git config user.email
# 或者直接使用以下命令就可以看到整个账户信息
git config --list
配置公私秘钥
cd ~/.ssh
ls
ssh-keygen # 因为服务器上还没有生成过公私秘钥对,所以用该命令生成
# authorized_keys id_rsa id_rsa.pub
cat id_rsa.pub # 查看公钥,并把它放到Github的SSH管理中
cd ~
# 测试链接
ssh -T git@github.com # 测试是否成功
# 出现以下提示:
The authenticity of host 'github.com (ip)' can't be established.
ECDSA key fingerprint is SHA256:XXXX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,ip' (ECDSA) to the list of known hosts.
# 出现以下提示说明链接成功了
Hi Kikihqq! You've successfully authenticated, but GitHub does not provide shell access.
按照上述方式配置MACOS时出现了连接超时
参考链接:解决git连接github超时问题
ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out
解决方式
ssh 阻塞了22号端口,给它换一个端口即可。
cd ~/.ssh/
vim config
# 在末尾加入以下内容
Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
# 退出之后再测试 即可连接成功
The authenticity of host '[ssh.github.com]:443 ([ip]:443)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[ssh.github.com]:443,[ip]:443' (ECDSA) to the list of known hosts.
Hi Kikihqq! You've successfully authenticated, but GitHub does not provide shell access.
配置服务器端项目和Github仓库关联
进入服务器端的工作区 SynNet
:
cd SynNet
git config --list
# user.name=Kikihqq
# user.email=HuiqingZh@outlook.com
# git的初始化命令,运行完后,会发现目录多了一个.git隐藏文件夹,这个命令可以把当前目录变成git可以管理的仓库
git init
# Initialized empty Git repository in /home/jovyan/SynNet/.git/
ls -a
# . .. .git
git checkout -b main # 创建并切换到 main 这个分支
git add .
git commit -m "first commit"
git remote add SynNet git@github.com:Kikihqq/SynNet.git
git pull --rebase SynNet main
git push -u SynNet main
参考链接:如何将本地项目上传到github上
对于Git版本在2.28.0以上者,可以通过以下命令一键修改:
git --version # 查看版本
git config --global init.defaultBranch main # git版本在2.28.0以上,可以重新设置git默认分支为main
一些可参照的问题解决方案: push操作失败的强行上传解决方案
Git学习篇之git remote add origin错误
一些BUG的记录…
# 出错 origin 位置应该是远程仓库的名字
# git remote add origin git@github.com:Kikihqq/SynNet.git
# git push origin master
# git remote rm origin # 删除掉这个错误的命名
git remote add SynNet[本地] git@github.com:Kikihqq/SynNet.git
git add .
git commit -m "first commit"
#[master (root-commit) d789592] first commit
# 1 file changed, 2 insertions(+)
# create mode 100644 data/make_data.py
git push -u SynNet[本地] master
# Counting objects: 4, done.
# Writing objects: 100% (4/4), 279 bytes | 279.00 KiB/s, done.
# Total 4 (delta 0), reused 0 (delta 0)
# remote:
# remote: Create a pull request for 'master' on GitHub by visiting:
# remote: https://github.com/Kikihqq/SynNet/pull/new/master
# remote:
# To github.com:Kikihqq/SynNet.git
# * [new branch] master -> master
# Branch 'master' set up to track remote branch 'master' from 'SynNet'.
再次进入Github界面,会看到这里并不是在主分支 main
上,而是出现了一个新的 master
,而这并不是我想要的。
重命名本地分支为 main
git branch -m master main
git push -u SynNet main
但是我们可以看到,就算改了名字,也并不能马上直接就push成功。
原因可能是你本地文件相对于 push 到 github 上的文件并没有什么修改,所以 作为版本控制工具,版本没有变化自然 push 不上去。
而我的目的之一是要删除掉 master 分支及其内容 。
删除Github远程分支
git push SynNet :master
# To github.com:Kikihqq/SynNet.git
# - [deleted] master
重新push
= = 这个故事告诉我们 不要用 回滚命令
这个操作,如果你之前打错了一个字母…但是你没有发现的话… 就会一直error… 人麻了…