git协同开发

一、Git远程仓库

GitHub是一个免费的服务器,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

注意GitHub上免费托管的Git仓库,任何人都可以看到,而能免费创建的私有项目是有限的。

1、创建SSH Key

步骤1、下载安装git,前面的文章已经介绍过,不再这里重复。
步骤2、在本地电脑用户目录下,鼠标右键git bash here
在这里插入图片描述
步骤3、执行命令:ssh-keygen -t rsa -C "[email protected]" ,如果是第一次生成 回车3次就可以了,根据自身配置。
在这里插入图片描述
然后到用户目录下的.ssh目录下,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥,id_rsa是私钥,id_rsa.pub是公钥。
步骤4、登陆GitHub,打开“Account settings”,“SSH and GPG keys”页面:
在这里插入图片描述
然后,点“New Ssh key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
在这里插入图片描述

那么此时表示已经和GitHub之间建立好了一个安全链接。由于ssh存在,GitHub才能进行用户识别。GitHub允许你添加多个Key。

2、创建远程仓库

步骤1、首先,登陆GitHub,然后,在右上角找到“new repository”按钮,创建一个新的仓库。
在这里插入图片描述
步骤2、在Repository name填入dongnaoGit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库.
在这里插入图片描述
现在设置的仓库名称为myTest,仓库创建完成之后会给出两种链接方式
a: https://github.com/meture/myTest.git
b: [email protected]:meture/myTest.git
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
步骤3、关联远程仓库
目前,在GitHub上的这个myTest仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联。现在,把GiuHub与本地仓库关联,在本地的myTest仓库下运行命令

$ git remote add origin [email protected]:meture/myTest.git

远程库仓库的名字就是origin,这是Git默认的叫法,也可以改成别的,此时已经和远程仓库建立了链接,但是远程仓库里面并没有本地仓库的内容。
在这里插入图片描述

3、推送本地内容到远程仓库上

$ git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令为$ git push origin master
在这里插入图片描述
远程仓库内容就和本地的一样了:
在这里插入图片描述
tips:当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. 
RSA key fingerprint is xx.xx.xx.xx.xx. 
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。这个警告只会出现一次,后面的操作就不会有任何警告了。

4、从远程库克隆

之前先有本地库,在创建远程仓库,然后再从本地push到远程库。现在先有远程仓库,要把远程库克隆到本地呢。

首先,找到我们要克隆的目标项目(或者自己新建一个),然后用命令git clone克隆一个本地库,我们先进入本地电脑I:\git目录(原来里面有没有文件无所谓),
在这里插入图片描述鼠标右键git bash here,
在这里插入图片描述
从GitHub上覆制远程仓库地址,执行命令:

$ git clone [email protected]:meture/lgyTest.git

在这里插入图片描述
成功把GitHub上我创建的项目lgyTest克隆到本地,并且会创建一个和GitHub上项目名一样的文件夹,在文件夹里面会创建本地仓库,并把远程仓库的内容都下载到本地
在这里插入图片描述

在这里插入图片描述
3 再尝试下提交文件到远程仓库,
添加文件,修改内容,进入lgyTest目录,鼠标右键git bash here,把新的内容commit到本地仓库后push到远程仓库
在这里插入图片描述

5、其他操作

提交本地修改到远程仓库

要提交到远程仓库之前,必须要先commit到本地仓库,远程仓库才能接收得到。命令是

$ git push origin master

使用https建立一个test远程仓库

$ git remote add test  https://github.com/xxxxx/myTest.git

查看远程仓库信息,如果没有推送权限,就看不到push的地址。

$ git remote  &&  $ git remote -v

切换远程仓库

$ git remote set-url origin [email protected]:xxxxx/dongnaoGit.git

删除远程仓库

$ git remote rm  test

二、协同开发

当有两个人在同一个分支下对文件做了修改,第一个人肯定是能顺利先push到远程仓库的,但是第二个人必须在push之前先把其他人的更新抓取到本地,不管有没有冲突都必须如此,有冲突解决冲突,然后在push到远程仓库。

$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
$ git fetch <远程主机名> <分支名> //取回特定分支的更新,可以指定分支名

执行fetch取回服务器的更新
在这里插入图片描述
通过git log –p FETCH_HEAD查看更新信息
在这里插入图片描述

补充:
不同人对同一个分支修改时,即使是改同一个文件,只要不改同一文件的同一行,就不会有冲突。

三、标签

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
在这里插入图片描述
在Git中打标签非常简单,首先,切换到需要打标签的分支上,执行命令

$ git tag xxxx

默认标签是打在最新提交的commit上的。如果想在之前的commit上打标签,先找到历史提交的commit id,然后打上就可以了:
在这里插入图片描述

$ git tag 标签名 commit id

例如

$ git tag v0.9 67cda3

可以用命令git tag查看所有标签,还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

 $ git tag -a 标签名 -m “说明" commit id

查看标签信息

$ git show xxx

本地标签删除

$ git tag -d xxxx

推送本地标签到远程仓库

$ git push origin xxxx

推送全部尚未推送到远程的本地标签

$ git push origin --tags

删除远程仓库标签
先删除本地标签$ git tag -d xxxx ,从远程删除 $ git push origin :refs/tags/xxxxxx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章