git远程仓库
远程仓库
Git是分布式版本控制系统,同一个仓库可以分布到不同机器上
可用git remote
查看远程仓库信息,使用-v
显示更详细的信息
克隆远程仓库
git clone git@github.com:username/gitrepo.git
git支持多种协议,如https等,但通过ssh支持的原生git协议速度最快
SSH授权
Git本地仓库与GitHub仓库间传输是通过SSH加密的
- 创建SSH Key
ssh-keygen -t ed25519 -C "ssh key"
创建ssh key,创建后可在用户目录下找到.ssh
文件夹,~/.ssh/id_rsa
是私钥,~/.ssh/id_rsa.pub
是公钥
- 登录GitHub
打开页面中 settings 的 ssh keys 中添加 title 并粘贴 id_rsa.pub 文件内容
将本地库与远程库关联
在GitHub中新建一个空的仓库repo
git remote add origin git@github.com:username/repo.git
将本地仓库与远程仓库关联,origin
是 git 远程仓库名的默认叫法
若想同时关联gitee,可另起一个别名git remote add gitee git@gitee.com:username/repo.git
远程分支管理
推送本地分支到远端
将本地分支推送到远端
git push -u origin master
若是第一次推送master
分支,由于远程库是空的,使用-u
参数,git不但会将master
内容推送到远程新的master
分支,还会将本地master
分支和远程master
分支关联,简化后面推送或拉取操作
从现在起,每次修改只需要使用git push origin master
直接推送即可,也可新建分支,如果远程仓库没有这个分支,那么也会新建
当然,也可以指定提交到远程仓库的某个分支上,如将dev
提交到master
分支上
git push origin dev:master
推送新分支到远程
git push --set-upstream origin branchname
删除远程分支
git push origin -d branchname
拉取远程分支到本地
如果本地当前是在dev
分支上面,此时想把远程仓库的master
与dev
分支合并(merge)
git pull origin dev:master
如果使用如下指令,含义是将远程仓库的master分支合并下来
git pull master
如果本地没有master分支,那么本地就新建一个master分支,如果有这个分支就是 fetch + merge 操作
多人协同开发
你和小伙伴一起在dev分支上开发,此时你想推送修改,但在此之前,小伙伴已经推送了他的提交,并修改了同样的文件,则会推送失败
git提示先git pull
最新的提交,在本地合并后再推送
若pull失败,提示no tracking information未指定本地dev和origin/dev链接
git branch --set-upstream dev origin/dev
这时pull成功,但提示有冲突,需手动解决冲突,解决方法前面介绍过
查看远程库和本地库的不同
git diff dev origin/dev
将远程库与本地库合并
git merge origin/dev
手动解决冲突后,再提交后推送到远程库
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析