git
前言
此次记录目的为记录第一次通过终端完成 git 仓库的拉取、推送等操作,以及一些可能常出现的错误
git config 配置
安装好 git 后可通过 git bash 打开,也可直接通过 shell 进行操作
- 用户名和邮箱配置
1
2git config --global user.name "name"
git config --global user.email "example@email.com" - 代理的配置、取消与查看
1
2
3
4
5
6
7
8
9配置
git config --global http.proxy http://127.0.0.1:33210
git config --global https.proxy http://127.0.0.1:33210
取消
git config --global --unset http.proxy
git config --global --unset https.proxy
查看
git config --global --get http.proxy
git config --global --get https.proxy
搭建本地仓库,并链接自己的远程仓库
- 在本地新建一个文件夹,通过终端进入
1
2创建仓库
git init - 添加文件或文件夹到暂存区
1
2
3git add .
git add [文件名] - 提交到本地仓库
1
2
3git commit -m "first"
git commit -am "second" - github 创建远程仓库
建立完成后在 code 下找到该仓库链接并复制,而后在终端操作1
git remote add origin "地址"
- ssh 公钥设置与检查然后进入保存 ssh 的文件,打开 id_rsa.pub,复制而后在 github 个人设置中添加
1
ssh-keygen -t rsa -C "邮箱名"
出现1
2检查
ssh -T git@github.comsuccessfully
就成功 - 推送
1
git push -u origin master
- 拉取
1
2
3
4
5git pull origin master
git fetch origin master
git merge origin master
问题
-
拉取别人仓库文件到本地时,会出现 origin 已配置,原因是一个远程仓库已经被命名为 origin ,不能再次指向另一个仓库
1
2
3
4删除已有的仓库
git remote rm origin
添加
git remote add origin "仓库地址"1
2换名字
git remote add origin2 "仓库地址" -
git push 推送问题
- ! [rejected] master -> master (non-fast-forward)
远程库已有代码,出于安全不允许直接推送,先将远程库的文件 pull 过来或者 fetch(前者会直接让本地库被覆盖)
1
2
3
4
5git pull origin master
使用 fetch 和 merge
git fetch origin master
git merge origin master此操作可能出现
refusing to merge unrelated histories
1
2添加后缀
git pull origin master --allow-unrelated-histories而后提交当前变化,即再 add 和 commit 一次
最后 merge 后即可提交也可以 git push -f 强推,不建议
- ! [rejected] master -> master (fetch first)
远程库和本地库版本不一致,解决方案与上述类似,拉取远程库后合并再推送 - 部分未推送
常见原因有:本地仓库为空(未 add );add 后未 commit ; git init 错误
- ! [rejected] master -> master (non-fast-forward)
-
return error 403
此问题出现于 git push 不加参数默认推送到主分支时,原因是需要令牌(鉴权失败也同理)
记得复制令牌后保存到别处,否则会刷新掉