序
Git是一个分布式版本控制系统, Github是一个为用户提供Git服务的网站
基本概念
仓库(Repository):存放项目代码,多个开源项目存放多个仓库
收藏(star):收藏项目
复制克隆项目(fork):该fork的项目时独立存在的,把项目复制过来自己用
发起请求(Pull request):基于fork的动作,在别人的fork项目上新增了功能,觉得不错,想合并到原本项目里,会向原有项目创建人发送请求,原有项目人同意即可添加你的代码
关注(watch):关注别人项目,及时收到更新的消息
事物卡片(lssue):发现代码BUG,但是目前没有成型代码,需要讨论时用,比如别人发现你的项目中有bug就会给你发送issue来提醒你
Github
- 关于GitHub访问的问题
- 第一种方法就是挂梯子了,毕竟GitHub是国外的服务器,这点理所应当,不止是一般的VPN,我在挂学校的vpn时也能实现很流畅的访问
- 第二种就是我在网上搜罗了一种不用挂梯子也能访问的方法
- 访问IP查询网站
- 在搜索框里搜索(GitHub.com),就会出现以下页面,找到该地址并记下来
- 然后再在搜索框中搜索(github.global.ssl.fastly.net),找到地址并记下来
- 将这两个地址写到C:\Windows\System32\drivers\etc 路径下的 hosts文件
- 刷新dns后(ipconfig /flushdns)就可以访问啦,不过速度emmm
Git
Git和Github的区别
Git是一个分布式版本控制系统,简单的说就是一个软件,用于记录一个或若干文件内容变化,以便来查阅特定版本修订情况的软件。
Github是一个为用户提供Git服务的网站,简单说就是一个可以放代码的地方(也可以放其他内容)。Github除了提供管理Git的web界面外,还提供了订阅、关注、讨论组,在线编辑器等丰富的功能。
目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。你就需要将数据放到一台其他开发人员能够连接的服务器上,所以就可以使用 Github 作为远程仓库
基本工作流程
Git工作区域
向仓库中添加文件流程
初始化
- 基本信息设置
1
2
3
4git config --global user.name '用户名'
git config --global user.email '邮箱地址'
该设置在github仓库主页显示谁提交了该文件 - Git仓库的初始化
- 即让Git知道需要他来管理这个目录
1
git init
- 执行后,打开这个项目目录下,点击隐藏目录你会发现多了一个.git文件夹。不能删除,也不能随意更改
Git常用命令
上传文件至仓库
- git status:查看当前工作状态
- git add:将工作区文件添加到缓存区,可以加–all批量提交
- git commit -m “注释内容”:提交至版本库
删除文件
- git rm:从git中删除文件
将本地仓库同步到远程仓库
- 先将远程仓库的项目复制到本地
- git clone 线上仓库地址
- 操作完文件将文件添加到本地仓库
- git push可将本地仓库同步到远程仓库
- 用git pull拉取线上的最新版本
- 如果要同步到其他仓库
1
2
3
4
5
6
7
8先建立连接
git remote add name http://xxxxxxxx.git (如果是clone下来的可以省略)
然后拉取最新版
git pull name branch //有一种情况是因为readme.md文件不在本地会报错 只需要git pull --rebase name branch本地生成readme文件
然后推送到仓库
git push name branch
- 先将远程仓库的项目复制到本地
查询文件
- git status : 查看工作目录中文件的状态(已跟踪(已提交 已暂存 已修改) 未跟踪)
- git diff : 查看未暂存的修改
- git diff –cache : 查看未提交的暂存
- git log –oneline : 查看提交记录
分支
- 分支的本质其实就是一个提交对象!!!
- HEAD: 是一个指针 它默认指向master分支 切换分支时其实就是让HEAD指向不同的分支,每次有新的提交时 HEAD都会带着当前指向的分支 一起往前移动
- 创建分支 : git branch branchname
- 切换分支 : git checkout branchname
- 创建&切换分支 : git checkout -b branchname
- 版本穿梭(时光机) : git branch branchname commitHash
- 普通删除分支 : git branch -d branchname
- 强制删除分支 : git branch -D branchname
- 合并分支 : git merge branchname
git分支的注意点:在切换的时候 一定要保证当前分支是干净的(已提交状态)!!!
后悔药
- 工作区
- 如何撤回自己在工作目录中的修改 : git checkout –filename
- 暂存区
- 如何撤回自己的暂存 : git reset HEAD filename
- 版本库
- 如何撤回自己的提交 : git commit –amend
- 注释写错了,重新给用户一次机会改注释
- 如何撤回自己的提交 : git commit –amend
- 工作区
日常开发流程
- git remote add <名字> <链接>
- 先建立连接
- git checkout -b 新分支名称
- 创建新分支并切换到新分支
- git push -u 连接名字 云端分支名字
- 将新创建的分支push到云端,并且起相同的名字和本地的分支对应起来
- git status
- 查看当前工作状态
- git add *
- 将工作区文件添加到缓存区
- git commit -m “注释内容”
- 暂存区内容提交至版本库
- git push
- 将该分支提交到远程仓库
- git checkout master
- 切换回主分支
- git merge 新分支
- 将新分支的代码合并到主分支上
- git push 连接名字 分支
- 这样分支和主分支就都提交到远程仓库上了