初步认识远程仓库——Github


实际开发过程中往往需要好多人一起开发,那么就会涉及到交换代码的问题。这时仅有本地仓库就不够用了,需要有个远程仓库。

创建远程仓库

  首先创建自己的Github账号,然后创建一个工程
在这里插入图片描述
之后页面提示我们新建一个仓库
在这里插入图片描述

推送本地代码到远程仓库

我们有两种通信协议:SSH和HTTPS。
在这里插入图片描述

SSH方式

SSH(Secure Shell)协议是目前比较可靠,专门为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
使用SSH协议要使用基于密钥的方式。我们必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。如果我们要连接到SSH服务器,客户端就会向服务器发出请求,需要使用密钥进行安全验证,服务器收到请求后,先在该服务器上我们的主目录下寻找公用密钥,然后把它与发送过来的密钥进行比较,如果两个密钥一致,服务器就会用公钥加密质询并把它发送给客户端软件,客户端收到质询后就可以用私人密钥解密发送给服务器。

生成SSH密钥

ssh-keygen -t rsa

输入命令后生成密钥对,存储在当前用户下的.ssh目录下,可以在我的电脑中查看
在这里插入图片描述
id_rsa这个没有后缀的文件就是私钥,需要保留好。id_rsa.pub是公钥,需要告诉github服务器。我们用记事本打开公钥,复制后打开Github,点击头像中的settings,找到SSH and KGP keys,新建SSH KEY。之后我们就不再需要服务器和密码,可以直接和服务器进行通讯。

推送到远程仓库

git remote add origin SSH地址
git push -u origin master

HTTPS方式

使用HTTPS相对简单,依靠用户名和密码认证身份的。不再需要密钥了。如果我们使用乌龟的话,用户名和密码只要输入一次,乌龟就会记住。

克隆远程仓库到本地

github上在仓库中点击Clone or download,clone和推送一样也有SSH和HTTPS两种方式。这两种方式没有区别,clone方式不需要身份认证。

我们可以用工具行clone:

git clone clone的地址

或者直接使用git工具:
在这里插入图片描述

推送修改的文件和冲突解决

实际开发中并不是每次我们都要把仓库全部都复制一份,修改上传也不是全都上传。我们只需要把修改的文件上传到远程仓库即可。远程仓库也是哪个文件有变化就把文件拉取到本地。

对于修改的文件,我们可以点击git工具的同步:
在这里插入图片描述
选择远端分支和远端URL,点击push推送。

对于远端修改过的文件,我们还是可以在工具中选择同步,然后pull拉取。

我们在推送和拉取的过程中可能会遇到冲突的问题(一定会遇到)。比如服务端已经更新了数据,本地数据不是最新的,我们不是在最新的文件上做的修改。对于这种情况我们首先要pull拉取远端的修改,虽然这个时候也是失败的,但是此时被修改的文件会出现三角感叹的标志,我们可以查看修改内容。这个冲突只能手动来合并代码。手动解决后在乌龟上点击解决冲突选项即可。这个时候再次提交到远程仓库就能够成功了。

分支管理

  在我们每次的提交,Git都会把它们串成一条时间线,这条时间线就是一个分支。在Git里有一个主分支:master分支,创建仓库的时候就存在了。HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的。所以HEAD指向的就是当前的分支。

  一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前的分支以及当前分支的提交点。

创建分支

乌龟的工具栏可以创建分支和切换分支
在这里插入图片描述
创建分支后整个Git仓库就会分叉了。我们可以在不同的分支上进行开发。

合并分支

不同的分支是平行的。对一个分支进行修改后,在另一个分支中是互不干扰的。所以我们可以实现不同分支之间平行开发。

当我们开发完成之后,会要把我们的分支合并到master中。我们首先需要把分支切换到master中(最终需要合并到哪个分支就切换到哪个分支),然后点击合并:
在这里插入图片描述
在弹出的对话框中选择我们要用哪个分支来合并,点击确定即可。这时候两个分支就合并到一起了。如果产生了冲突,这个时候还是需要手动操作解决冲突,然后点击解决冲突。合并完成后再次提交到master就合并完成了。

### 如何将本地代码推送到GitHub远程仓库 #### 关联本地仓库GitHub远程仓库 为了使本地仓库能够与GitHub上的远程仓库交互,需先建立两者之间的连接。通过命令`git remote add origin http://github.com/用户名/项目名.git`可实现此操作[^1]。 #### 准备推送文件 在准备向远程仓库推送之前,应确保所有待上传的更改已被加入暂存区并通过提交保存到了本地仓库中。这可以通过执行如下两条指令完成: - `git add .`用于添加当前目录及其子目录中的所有新文件和修改过的文件到暂存区。 - 提交这些变更到本地仓库则需要用到`git commit -m "描述"`的形式来记录此次更新的信息[^2]。 #### 同步远程仓库内容(当远程仓库不是空的时候) 如果目标远程分支已存在数据,则建议先运行`git pull --rebase origin 主分支名称`以拉取最新的改动并应用到本地工作副本之上,从而减少冲突发生的可能性。 #### 执行推送动作 最后一步就是实际地把本地版本历史发送给远端服务器了。对于初次设置链接的情况而言,应当采用带有-u参数形式的push命令——即`git push -u origin master`,它不仅会传送最新的一次commit,还会自动设定追踪关系以便日后简化后续的操作流程[^3]。 ```bash # 建立与远程仓库的关系 $ git remote add origin https://github.com/用户名/仓库名.git # 添加所有未跟踪或被修改后的文件进入索引阶段 $ git add . # 创建一个新的提交对象并将之附加于HEAD指针所指向的位置处 $ git commit -m '初始化提交' # 如果远程已有内容的话, 需要获取其最新状态并与自己的分支合并起来 $ git pull --rebase origin main # 将本地main分支的数据同步至origin对应的remote位置上去 $ git push -u origin main ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值