赞
踩
更好的阅读体验:点这里 ( www.doubibiji.com
)
前面在学习的时候,都是在本地操作的,提交也是提交到本地的仓库,也就是在项目下生成的 .git
文件夹中。
在实际的开发中,都是多人协作开发,所以需要一个远程的仓库,这样每个人都往远程仓库推送代码和拉取代码。
结构是这样的:
远程 Git 仓库和本地仓库没什么不同,只是远程仓库可以被多人访问。在实际的开发中, Git 远程仓库服务器一般由公司在内部搭建,或者购买一些公共的开放的 Git 服务器,例如 github 或 gitee(码云)。
下面我们演示一下 gitee 远程仓库的使用。
首先需要注册一个 gitee 账号,如果没有就注册一个。网址:https://gitee.com
注册完成就可以登录,登录后就可以创建仓库了。
另外先绑定邮箱,这样可以用来在提交代码的时候,登录 gitee 来提交代码。
创建项目,填写信息。
这里建议不要勾选任何选项,否则可能会在仓库中生成一些文件,导致仓库不是空的,后面推送的时候会出问题,还需要特殊处理。
新建仓库后,会看到仓库有一个地址。
这个就是仓库的地址。
现在已经有了远程仓库,那么可以与远程仓库进行交互了。
首先需要将本地的仓库与远程仓库进行关联。
如果本地没有仓库,那么先在本地创建一个仓库。
还是之前创建仓库的步骤,例如我们本地的仓库已经新建好了。并在仓库中 新建了一个 1.txt,并添加了内容后,并提交到了本地仓库中。
现在要做的是如何将仓库与远程仓库关联,并将文件提交到远程仓库。
将本地仓库与远程仓库关联,在本地仓库下,执行如下指令:
git remote add origin https://gitee.com/doubibiji/hello-git.git
git remote add
这个是命令,表示关联远程仓库;origin
这个是远程仓库的别名,我们本地的仓库是可以和多个远程仓库关联的,所以后面与远程仓库操作的时候,通过别名就知道和哪个远程仓库进行交互了。一般情况下,只会与一个远程仓库关联,别名都叫 origin,因为我们后面执行 git push
等命令的时候,默认的目标就是 origin
,当然你爱叫什么叫什么,但是如果别名不是 origin,执行 git push
等命令的时候,还需要指定别名。https://gitee.com/doubibiji/hello-git.git
是仓库的地址。注意!注意!注意!
我们刚才创建远程仓库的时候,没有勾选仓库初始化选项,所以仓库是空的,如果此时远程仓库不为空,则会推送失败。
使用如下指令推送:
# 如果本地分支为master,使用这个指令
git push -u origin master
# 如果本地分支名称为main,使用这个指令
git push -u origin main
上面的命令表示推送到本地的 master 分支到远程仓库 origin 的 master 分支,并将本地 master 分支设置为跟踪远程的 master 分支。
操作的时候如果是第一次操作,会弹出认证,提示输入 git 的账号密码,按照要求操作就行了。
还有一个地方要注意,本地分支的名称要与远程分支的名称一致,推送之前也可以修改本地分支的名称:
git branch -M master # 在 main 分支上执行,将main分支修改为master分支
现在本地的代码已经推送到远程仓库了,可以刷新 gitee 仓库的页面可以看到推送的代码。
上面第一次推送的时候,需要指定远程仓库和分支,将本地分支和远程分支关联,后面在 master 分支推送的时候就不需要指定了,直接使用 git push指令就可以了。
git push
如果在本地创建了 develop 分支,如何将 develop 分支推送到远程仓库呢,使用如下命令:
git push -u origin develop
这会将本地的 develop
分支推送到远程仓库的 develop
分支,并将本地分支设置为跟踪远程的 develop
分支。
如果后面在 develop 分支修改代码,直接在 develop 分支执行 git push
命令就可以推送到远程 develop 分支了。
远程仓库发生更新后,可以使用 pull 命令拉取远程仓库的代码同步都到本地仓库。
git pull # 拉取远程仓库的代码
拉取的时候如果有冲突,则需要处理合并。
在实际的开发中,在推送代码(push)到远程仓库之前,最好先执行拉取操作 (pull)。
为什么在 push
之前最好先 pull
?
因为你可能一开始从远程仓库 pull 的代码,然后进行修改,但是在你 push 之前,别人可能又 push 了代码到了远程的仓库,你本地的代码不是最新的,所以 push 可能会失败。所以我们在 push 之前要保证本地的代码是最新版本,需要先 pull 一下,pull 的时候可能会有冲突,因为别人也修改了代码,合并冲突,然后再提交,提交完成,再 push。
而在 pull 之前保证最好当前的工作空间是干净的,没有未提交的代码。如果有未提交的更改,建议提交,这样做有助于避免合并冲突。
上面我们是本地已经有仓库了,然后将本地仓库与远程空仓库进行关联。
我们也可以先在 gitee 上创建远程仓库,然后将远程仓库 克隆 到本地仓库,然后再进行后续的修改和提交。
这样就不用进行本地仓库的初始化和关联操作了。
我们进入到一家公司,一般都是通过这种方式,从远程仓库将代码克隆到本地,然后在进行修改和提交。
举个例子:
现在已经有远程仓库 https://gitee.com/doubibiji/hello-git.git
通过如下命令克隆到本地:
git clone 仓库地址 # 本地仓库和远程仓库文件夹名称相同
git clone 仓库地址 本地名称 # 还可以指定本地文件夹的名称,可远程仓库不同
# 克隆我的仓库
git clone https://gitee.com/doubibiji/hello-git.git
克隆到本地的仓库,是不需要初始化的,直接可以修改代码,然后直接使用 git push
和 git pull
命令进行代码推送和拉取。
实际的开发中,一般使用可视化操作,在VSCode中或IDEA中操作,就比较方便了。
本地代码 commit 之后,可以直接进行 push 。
如果没有关联远程仓库,会提示要不要添加远程仓库,OK 就会弹出添加。
弹出添加远程仓库:
点击添加后,会提示输入远程仓库的地址:
输入完成回车,会要求属于远程仓库的名称,输入 origin 就可以了:
这样就和远程的仓库关联了,后面修改、提交、pull 和 push代码就行了。
如果本地没有仓库,在打开 VSCode 的时候,切换到 git 页面,可以点击 Clone Repository 克隆仓库。
在弹出的窗口输入仓库地址即可:
远程库常用的其他指令:
git remote # 显示关联的远程库
git remote remove origin # 删除 origin 远程库
除了可以使用 git pull 命令拉取代码,还可以使用 git fetch
命令。
git fetch
和 git pull
都是拉取代码,但是有很大区别,git pull
会拉取并合并代码,git fetch
只拉取代码到本地,不会自动合并代码,还需要手动合并。
git fetch # 拉取远程的代码到本地
git merge origin/master # 和远程的代码合并
git pull = git fetch + git merge
,如果有冲突,需要手动解决,一般 git pull
用的多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。