远程仓库github

2024-11-06 22:11

添加远程库

现在我们已经在本地创建了一个Git仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份。

常用的远程仓库就是github:https://github.com/,接下来我们演示如何将本地代码同步到github。

在github上创建仓库

首先你得在github上创建一个账号,这个就不演示了。然后在github上创建一个仓库:

bluecats2060@163.com(820202cjc!)



点击"create repository"按钮仓库就创建成功了。

Github支持两种同步方式"https"和"ssh"。如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。如果使用ssh方式就需要客户端先生成一个密钥对,即一个公钥一个私钥。然后还需要把公钥放到githib的服务器上。这两种方式在实际开发中都用应用,所以我们都需要掌握。接下来我们先看ssh方式。

ssh协议

什么是ssh?

SSH 为 Secure Shell(安全外壳协议)的缩写,由 IETF 的网络小组(Network

Working Group)所制定。SSH

是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH

协议可以有效防止远程管理过程中的信息泄露问题。

基于密匙的安全验证

使用ssh协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密"质询"(challenge)并把它发送给客户端软件。客户端软件收到"质询"之后就可以用你的私人密匙解密。

ssh密钥生成

在windows下我们可以使用 Git

Bash.exe来生成密钥,可以通过开始菜单或者右键菜单打开Git Bash


git bash 执行命令,生成公钥和私钥

命令: ssh-keygen -t rsa


执行命令完成后,在window本地用户.ssh目录C:\Users\用户名\.ssh下面生成如下名称的公钥和私钥:


ssh密钥配置

密钥生成后需要在github上配置密钥本地才可以顺利访问。



Title:随意取

在key部分将id_rsa.pub文件内容添加进去,然后点击"Add SSH

key"按钮完成配置。

同步到远程仓库

同步到远程仓库可以使用git bash也可以使用tortoiseGit

使用git bash

在仓库所在的目录(D:\temp\git\repository)点击右键选择"Git Bash

Here",启动git bash程序。


然后在git bash中执行如下语句:

origin是远程仓库的别名,可以是任意名称。

git remote add origin git@github.com:bluecats2060/mytest.git

git push -u origin master

注意:其中红色字体部分需要替换成个人的用户名。


在github的仓库中可以看到项目已经上传


使用TortoiseGit同步

一、由于TortoiseGit使用的ssh工具是"PuTTY"git

Bash使用的ssh工具是"openSSH",如果想让TortoiseGit也使用刚才生成的密钥可以做如下配置:




Url:远程仓库的地址

推送URL:也是相同的

Putty密钥:选择刚才生成的密钥中的私钥

2. 同步。在本地仓库的文件夹中单击右键,选择"Git同步"



推送完成


从远程仓库克隆

克隆远程仓库也就是从远程把仓库复制一份到本地,克隆后会创建一个新的本地仓库。选择一个任意部署仓库的目录,然后克隆远程仓库。

使用git bash

$ git clone <git@github.com:bluecats2060/mytest.git>


使用TortoiseGit

在任意目录点击右键:




从远程仓库取代码

Git中从远程的分支获取最新的版本到本地有这样2个命令:

  1. git

    fetch:相当于是从远程获取最新版本到本地,不会自动merge(合并代码)

  2. git pull:相当于是从远程获取最新版本并merge到本地

上述命令其实相当于git fetch 和 git merge

在实际使用中,git fetch更安全一些

因为在merge前,我们可以查看更新情况,然后再决定是否合并

如果使用TortoiseGit的话可以从右键菜单中点击"拉取"(pull)或者"获取"(fetch)


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

1)从git上克隆一个仓库



提交repository2

2)在repository添加文件


提交本地仓库



添加后


此时在git上并没有a.txt文件


将a.txt同步到git



注意如果有其它的开发人员上传了修改文件,导致git上的文件和你本地的文件有不同,则会报错,此时先要让你自己的仓库文件同步git上的被修改过的文件,即用pull先获取git上的最新文件内容。


将a.txt同步到git


查看git,a.txt已经同步了。


3)repository2拉取git上的文件

将a.txt从git上拉取到本地仓库repository2


4)修改repository2的a.txt


将a.txt同步到git


此时git上a.txt内容


5)修改repository的a.txt




此时也想将a.txt同步到git

a.txt内容是


与git上a.txt内容已经不一样了。

尝试同步


报错


此时需要先从git上pull最新的a.txt,再手工处理。



打开a.txt


自己手工修改


修改后告诉git


再次同步a.txt


查看git上a.txt文件


删除仓库

点击进入你要删除的repository,如下图,点击右侧的Settings

在该Repo的Settings页面最下方有Delete this repository 按钮

相关文章
热点文章
精彩视频
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量: