分布式版本控制系统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匹配
# 配置全局用户名
git config --global user.name '输入用户名'
# 配置全局邮箱
git config --global user.email 'xxx@qq.com'
# 这里配置的是全局的用户名和邮箱,也可以为每一个项目配置一个,这里就不演示了。
接下来去C:\Users\Administrator 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:\Users\Administrator.ssh 路径下生成了一个
known_hosts
的文件 - 里面内容是github的一些信息,标识已经与github建立连接,已经被识别。
本地git ——>上传——> github push
将本地的项目上传到github上面
首先必须得在github上面创建一个空仓库。
本人创建了一个 CSwrok测试目录
…
与本地仓库 , 建立连接
第一次创建好之后就会展示这个页面:
- 这是一个空的远程仓库, 需要与本地仓库进行连接才能使用!
- 可以根据上面官方提供好的命令进行连接!
本人事先准备一个本地仓库 work
接下来就是:本地仓库 与 远程仓库进行 连接
为远程仓库起别名
- 可以看到 远程仓库的地址,那我们每次拉取(下载)代码,或者上传代码都使用这个
这个地址是很麻烦的,也很难记住,所以我们要为这个地址起一个别名,以后拉取上传都使用别名代替地址。
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仓库
推送, 就相当于是:将本地仓库 和 远程仓库进行同步~ 第一次操作即可!
git push 别名 分支名 #要推送的分支~ (一般来说公司中不同分支做不同的事情的!)
git push -u 别名 分支名 #-u指定默认主机
#例子:git push -u origin master (推送当前主机,master主分支...)
上传, 还需要输入 邮箱/密码 用户名 进行验证:毕竟进行远程上传很多人都可以下载...安全第一
下载GitHub仓库代码 clone/pull
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
对本地文件进行更新
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了。👍
邀请别人加入团队
只有被邀请的开发者才可以对,仓库进行push 修改提交
首先是仓库创建者:
- 步骤一:点击
settings
- 步骤二:找到
Manage access
并点击 - 步骤三:点击
Invite a collaborator
- 步骤四:输入被邀请人的名字或者邮箱,回车确定
- 步骤五:点击提交
- 步骤六:复制邀请链接,发送给被邀请人(也可以省略,GitHub会发送邮件给被邀请人)
- 步骤七:被邀请人登录在浏览器地址栏输入邀请者的网址,点击
Accept invitation
就完成了邀请操作
SSH免密登录
基于HTTP/HTTPS操作 push 代码的时候,每次都需要输入用户名密码
比较麻烦,可以使用 SSH 在本地和远程建立安全连接,以后提交代码就不用输入用户名密码了!
局限性:只能为一个账号设置 SSH
步骤如下:
以下来源于:大佬
- 打开 Git 命令 输入 cd ~ 进入当前用户的家目录
- 删除.ssh 目录(为了测试我删除了本地的)
rm -rvf .ssh
- 运行命令生成 ·.ssh· 密钥目录(注意 C 是大写)
ssh-keygen -t rsa -C 你的github注册邮箱
- 复制 ssh-…的文件
修改新生成的 公钥!
GitHub分支合并!
Idea 操作Github
idea 只是工具,强大的工具内部集成了Github 可以直接下载/上传…操作Github 很有必要了解…以后了解
新年快乐! 嗨皮牛耶✌
转载:https://blog.csdn.net/qq_45542380/article/details/113776977