参考链接:Git使用教程
Git是目前世界上最先进的分布式版本控制系统
工作原理、流程:
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(本地仓库)
Remote:远程仓库
工作区就是在电脑上看到的目录(.git 隐藏目录版本库除外),工作区中隐藏目录.git属于版本库, 包含index/stage(暂存区)、自动创建的第一个分支master、指向分支master的指针HEAD。git add将文件添加到 暂存区, git commit提交更改,将暂存区的内容提交到当前分支上。
Workspace是本地工作的位置,本地仓库和远程仓库需要关联(连接本地仓库和远程仓库)
一、Git如何操作
二、远程仓库
三、创建与合并分支
四、bug分支
五、多人协作
一、解决 “fatal: Could not read from remote repository.”
在使用Git将本地仓库推送到远程仓库的时候,发生了如下错误:“fatal: Could not read from remote repository.”
存在问题 (1)网络问题
(2)客户端和服务器端未生成ssh key或者ssh key不匹配
解决方法 生成新的ssh key
1)使用命令 ssh-keygen -t rsa -C "邮箱地址" 重新生成密钥,会新产生两个文件 /root/.ssh/id_rsa, /root/.ssh/id_rsa.pub
2)将id_rsa.pub文件中的内容复制到git的SSH key保存目录中即可,github的SSH key保存目录位置位于Setting -> SSH and GPG keys
由于Git是分布式版本控制系统, 需要填写用户名和邮箱作为标识
1)git config --global 参数
git config --global user.name "名字"
git config --global user.email "邮箱"
二、Git的基本操作
(一)本地仓库操作
1)创建版本库
git init 将目录变成git可以管理的仓库(在对于目录下多一个.git的目录,用来跟踪管理版本)
2)git add 命令将文件添加到暂存区里面去
3)git commit -m "提交的注释" 命令将文件提交到仓库
4)git status 命令查看文件提交的状态
5)git diff 命令查看文件修改的内容与不同
6)git log 命令查看历史记录
git log -pretty=oneline 显示一行的历史记录
git reflog 命令查看历史版本号记录
7)git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上两个版本
git reset --hard HEAD~100 回退到前100个版本
git reset --hard 版本号 回退到对应版本号的版本
8)git checkout -- 文件 命令将工作区做的修改全部撤销
倘若知道需要删除的内容,手动更改去掉文件,然后add添加到暂存区,最后commit
亦可以使用git reset命令恢复到上一个版本
9)删除文件,可以直接在文件目录中将文件删除,rm命令, 倘若打算在版本库中彻底删掉文件,可以再执行commit命令提交掉。只要没有commit之前,可以在版本库中使用git checkout 命令恢复文件。
从github远程仓库中删除文件夹或者文件(在github上只能删除仓库,却无法删除文件夹或者文件, 只能通过命令来解决)
#git pull origin master 将远程仓库里面的项目拉下来
#查看相应的文件夹
#git rm -r -cached 文件夹 删除相应的文件夹
# git commit -m "注释" 提交文件夹到本地仓库
#git push -u origin master 将本次的更新提交到github仓库项目中
该操作本地对应的文件夹不受影响,删除的是远程仓库中的对应文件夹
(二)远程仓库操作
本地的git仓库和远程的github仓库之间的传输是通过SSH加密传输的,故需要创建SSH key,id_rsa是私钥, id_rsa.pub是公钥
1)git remote add origin 项目地址 将本地仓库和远程仓库建立联系
git remote -v 可以查看是否成功建立联系
2)git push origin master 将本地master分支的内容推送到远程github上
git push -u origin master 首次推送添加-u参数, 会将内容推送到远程分支, 并且将远程和本地的分支关联起来
3)git clone 命令克隆本地仓库
三、Git的分支操作
分支是为了将修改记录的整体流程分叉保存。分叉后的分支不受其他分支的影响,所以在同一个数据库里可以同时进行多个修改。分叉的分支可以合并。
分支的好处:
- 同时并行推进多个功能开发,提高开发效率。
- 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
1)git branch [分支名] 创建本地分支(注意新分支创建后不会自动切换为当前分支)
git branch 查看本地分支
git branch -v 查看本地分支
git branch -r 查看远程分支
2)git checkout [分支名] 切换分支
git checkout -b [分支名] 创建新分支并切换到新分支
2)git branch
4)git branch 查看本地分支
git branch -r 查看远程分支
git branch [name] 创建本地分支(注意新分支创建后不会自动切换为当前分支)
git checkout [name] 切换分支
git checkout -b [name] 创建新分支并切换到新分支
git branch -d [name] 删除分支( -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项)
git merge [name] 合并分支(将名称为[name]的分支与当前分支合并)
git push origin [name] 创建远程分支(本地分支push到远程)
git push origin:heads/[name] 删除远程分支
未完待续(创建、合并分支, bug分支, 多人协作)
存在失败情况下的blog:
error: failed to push some refs to - 简书 (jianshu.com)
四、Github的readme的编写
readme编写参考:Git学习:Readme文档的编写
如何在github仓库中编写好一份优秀的Readme文件, Readme文件的编写使用Markdown编辑模式撰写。Github的编写较原始,必须按照语言规则编写。
一、Markdown编写工具
Markdown编写工具推荐使用StackEdit。StackEdit在不需要下载软件的情况下可以直接使用网页进行编写。网页在线编辑网址:StackEdit
二、语言规则
1、标题Size
大标题:在文本下面添加等于号, 等于号的个数无限制
大标题
====
中标题:在文本下面添加下划线, 下划线的个数无限制
中标题
____
#一级大标题
##二级大标题
###三级大标题
依次类推(一共1~6级标题, 文本大小依次减小)
2、字体加粗倾斜
在加粗字体前后加两个星号**
在倾斜字体前后加一个星号*
在删除线字体前后加两个~~
3、标点
- 内容(一个负号符号后面添加内容即可在内容前加点号)
* 内容 (【圆点符号】在星号后面加一个空格,多加一个Tab即为二级圆点,多加两个Tab即为三级圆点)
>内容(表示内容缩进,多加几个>,即表示几个缩进)
4、添加图片、插入链接、插入代码片段
先将图片传到Issues中得到url链接,点击下方attach files上传图片, 之后得到图片的链接,然后复制链接到readme文件中即可显示图片。
插入网络的图片
eq:![](), 即为! + [] + ()
给图片添加超链接
eq:[![]](), 对于图片超链接,在![]外添加一个[]
插入链接(文字超链接的格式)
eq:[百度](http://baidu.com)
插入代码片段
在代码上下行用```标记, 倘若要实现语法高亮,在```后面加上编程语言的名称。
部分文字高亮
使用``包围的部分文字高亮显示
5、数学公式
$数学公式$ 将数学公式插入到句子中
$$数学公式$$ 另起一行新的数学公式
6、表格形式
一、
输入竖号横线即可形成表格
形式一:
|表头一|表头二|
|-------|---|
|内容一|内容二|
|内容三|内容四|
需要注意的是, “-”分割需要三个或者三个以上, 没有具体的个数要求。
形式二、
带左中右对齐的表格
|左对齐|居中对齐|右对齐|
|:-- | :-----:|-:|
|左对齐列|居中对齐列|右对齐列|
|1|2|3|
对于第二列中的空格数没有要求,但至少需要一个。
二、
github的README.md文件中如果不想添加结构复杂的表格, 可以通过markdown,然而一旦表格结构复杂,如果出现合并单元格,markdown便无能为力, 此时可以通过html。
(1)在word中编辑好表格
(2)将word文件另存为网页
(3)打开该html文件,找到table的标签,将table标签内容复制下来,粘贴到README.md中