git远程仓库

远程仓库

Git是分布式版本控制系统,同一个仓库可以分布到不同机器上
可用git remote查看远程仓库信息,使用-v显示更详细的信息

克隆远程仓库

git clone git@github.com:username/gitrepo.git

git支持多种协议,如https等,但通过ssh支持的原生git协议速度最快

SSH授权

Git本地仓库与GitHub仓库间传输是通过SSH加密的

  1. 创建SSH Key
ssh-keygen -t ed25519 -C "ssh key"

创建ssh key,创建后可在用户目录下找到.ssh文件夹,~/.ssh/id_rsa是私钥,~/.ssh/id_rsa.pub是公钥

  1. 登录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分支上面,此时想把远程仓库的masterdev分支合并(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

手动解决冲突后,再提交后推送到远程库

posted @ 2024-11-01 13:15  sgqmax  阅读(3)  评论(0编辑  收藏  举报