分布式版本控制系统Git 二:操作GitHub

2024-08-06 13:54:05 浏览数 (3)

分布式版本控制系统GitHub

本篇文章建议与上一篇 一起食用效果更佳

话不多说进入正题!

git和github概念:

Git:

是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具

Github

  • github,这是一个网站,就是每个程序员自己写的程序,可以在github上建立一个网上的远程仓库 你每次提交的时候可以把代码提交到网上,这样你的每次提交,别人也都可以看到你的代码 同时别人也可以帮你修改你的代码,这种 开源 的方式非常方便程序员之间的交流和学习。

总结来说,git可以认为是一个软件,能够帮你更好的写程序,github则是一个网站,这个网站可以帮助程序员之间互相交流和学习。

使用Github

  • github 是有墙的,比较慢
  • 在国内的话,我们一般使用 gitee
  • 公司中有时候会搭建自己的 使用:gitlab服务器

1. 首先注册:github账号了

github 这个是老外开发的所以, 纯英文...可以用浏览器翻译..

2. 创建SSH Key密钥

打开Git Bash,输入下面的命令,然后一路回车 ssh-keygen -t rsa -C '自己的邮箱'

使用前, 确保自己本地安装git 账户/邮箱 与github匹配

代码语言:javascript复制
# 配置全局用户名
git config --global user.name '输入用户名'

# 配置全局邮箱
git config --global user.email 'xxx@qq.com' 
# 这里配置的是全局的用户名和邮箱,也可以为每一个项目配置一个,这里就不演示了。

接下来去C:UsersAdministrator windows操作:系统盘/用户/管理员/目录下

  • 会发现多了一个.ssh的文件夹,生成的密钥就再这里面。
  • id_rsa是自己的密钥,id_rsa_pub是公钥,就是对外的密钥 把它提供给需要连接的github,你就可以连接了。

3. github添加本地公钥

进入到github设置中,找到SSH and GPG Keys

4. 测试连接

ssh -T git@github.com

输入 命令,测试本地git 与 github测试连接,

第一次测试连接需要输入验证**确认连接**:yes/no 输入yes即可!

  • 此时在 C:UsersAdministrator.ssh 路径下生成了一个known_hosts的文件
  • 里面内容是github的一些信息,标识已经与github建立连接,已经被识别。
在这里插入图片描述在这里插入图片描述

本地git ——>上传——> github push

将本地的项目上传到github上面

首先必须得在github上面创建一个空仓库。

本人创建了一个 CSwrok**测试目录**…

与本地仓库 , 建立连接

第一次创建好之后就会展示这个页面:

  • 这是一个空的远程仓库, 需要与本地仓库进行连接才能使用!
  • 可以根据上面官方提供好的命令进行连接!
本人事先准备一个本地仓库 work

接下来就是:本地仓库 与 远程仓库进行 连接

为远程仓库起别名
  • 可以看到 远程仓库的地址,那我们每次拉取(下载)代码,或者上传代码都使用这个
  • 这个地址是很麻烦的,也很难记住,所以我们要为这个地址起一个别名,以后拉取上传都使用别名代替地址。
代码语言:javascript复制
 git remote add 别名 远程地址 
 #例子:git remote add origin http://...     给远程地址起别名:origin
 
 git remote -v  #查看远程地址别名,如果设置没有的哟;

 #如果出现这个错误:fatal: remote origin already exists. 别名已存在,可以删除...在重新配置一个/换个名字
 git remote rm origin  	#(删除关联的origin的远程库)
 
 #fatal: not a git repository (or any of the parent directories): .git 则是表示你的本地仓库没有 .git文件(没有被管理)
 git init 	#即可!!
推送本地代码到GitHub仓库

推送, 就相当于是:将本地仓库 和 远程仓库进行同步~ 第一次操作即可!

代码语言:javascript复制
git push 别名 分支名			#要推送的分支~ (一般来说公司中不同分支做不同的事情的!)

git push -u 别名 分支名 		#-u指定默认主机
#例子:git push -u origin master  (推送当前主机,master主分支...)

上传, 还需要输入 邮箱/密码 用户名 进行验证:**毕竟进行远程上传很多人都可以下载...安全第一**

下载GitHub仓库代码 clone/pull

代码语言:javascript复制
git clone 远程地址
	#完整的把远程库下载到本地	创建 origin 远程地址别名	初始化本地库 .git (在本地该目录下远程下载个一模一样的本地仓库!)

git pull 别名 分支名 

下载GitHub仓库 clone

  • 第一次下载是从无到有的操作,使用 git clone 后面可以直接在原有文件使用 git pull 命令更新文件代码
  • 克隆下来的文件不推荐在主分支 master 里面做开发
  • 1.github 每个远程仓库都有一个自己的 远程连接 通过连接进行 clone/pull
  • 2.为了区分, 我创建了一个 zhangsan 文件夹。模拟某一个用户远程下载仓库 进行开发~ 直接在zhangsan目录下 Git Bash 执行:git clone 远程地址 就开始拉取远程仓库的工程了!(github上有很多开源的项目可以去找拉取下拉学习~开发…) 它会把整个仓库都拉取下来:到你自己的本地仓库,你可以进行二次开发...也可以通过 pull进行更新同步....

拉取代码 pull

  • 如果本地存在 clone 下来的代码 在拉取远程github的代码就不需要使用 clone克隆(复制)操作,可以使用 pull对本地文件进行更新
代码语言:javascript复制
git pull origin(别名) 分支名 #第一次 clone 时候就自动生成了一个别名!
#等价于
git fetch origin 分支名		#会把远程文件拉取到本地库,不会直接和本地原来文件合并(可以有个缓冲,查看完远程文件后再合并

git merge origin/分支名		#合并

修改文件 推送 远程版本库github push

开发者下载下来某个工程之后, 进行二次开发。修改 在次上传同步 本地/远程的代码...

其实就是 push 然后需要进行以下操作

  • 修改后,本地要先 添加到暂存区
  • 提交到本地版本库
  • 推送到远程版本库
  • 要确保 git status 没有未 commit的文件即可 推送

本地项目与github项目关联了之后

  • AB用户 clone 仓库
  • A修改提交: 相当于别人修改了文件,提交到了远程版本库github中。 B还是 之前的版本不受影响!
  • B可以通过 pull进行 拉取更新

公共的仓库都可以下载,但是能够修改 push的只能是 仓库主人邀请的开发者才可以 push

work 修改提交 远程仓库 push

zhangsan下并没有同步!

zhangsan pull 同步远程仓库!

冲突情况处理

比如现在我在github上面修改了文件,然后再本地也修改了同一个地方,那么就会出现冲突的情况。

Github

Git

注意:这里的本地代码已经commit提交到本地版本库了。 这个时候,如果本地push代码的话,会提示错误。

所以一般在推送push到远程版本库之前,先拉取pull一下远程代码库的代码

  • 可以看到a.txt文件有冲突,然后命令行进入到了MERGING模式
  • 这个时候我们可以打开a.txt,把冲突的地方解决掉 然后把a.txt加入到暂存区,然后commit,然后push,就OK了。

    0 人点赞