GitHub上有趣的资源Web前端之路程序员

终端推送代码到github详解_Git_Se7ven

2017-06-29  本文已影响90人  Se7ven

OK~~ 这个话题估计百度一大推出来了,而且按照他们的步骤也能完成!例如下面的几个步骤就搞定了:

  1. Github官网 创建一个项目 例如:sh-demo1
  2. git init

  3. git add .

  4. git commit -m '初始化文件'

  5. git push https://github.com/MaWenxing/sh-demo1.git master

Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 351 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/MaWenxing/sh-demo1.git
 * [new branch]      master -> master

But...步骤是很简单,但是还是有很多细节的!下面对具体知识点介绍一下:


总有一条是你喜欢的。。只要坚持看下去


Git的基本使用

基础配置

初始化仓库

这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是Git 仓库的骨干。
它是 Git 用来保存元数据和对象数据库的地方。
该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。
.git

.git目录结构介绍

1. hooks/:      包含客户端或服务端的钩子脚本(hook scripts)
2. info/:       包含一个全局性排除(global exclude)文件,用以放置那些不希望被记录在 .gitignore
               文件中的忽略模式(ignored patterns)
3. objects/:    存储所有数据内容
4. refs/:       存储指向数据(分支)的提交对象的指针
5. config:      存放项目特有的配置选项
6. description: 文件仅供 GitWeb 程序使用,我们无需关心
7. HEAD:        文件保存暂存区信息,一般指向refs下的某文件

跟踪文件

提交更新 提交说明

查看文件状态

git status

三个分区:

1、 工作区:开发者的工作目录
2、 暂存区:临时存放工作目录中变更的文件
3 、仓库 :存储提交之后的文件目录

文件的三种状态

已修改(modified)=> 已暂存(staged)=> 已提交(committed)

状态图

Git工作流程

1 在工作目录中修改某些文件。
2 对修改后的文件进行快照,然后保存到暂存区域。 #git add .
3 提交更新,将保存在暂存区域的文件快照永久转储到.git目录中。# git commit -m "tijiao"
提交图

查看提交日志

版本回退 回滚

忽略文件

1 在与 .git 隐藏目录同级的目录中创建 `.gitignore` 文件
2 打开 .gitignore 文件,加入忽略文件,例如:/test.html
3 路径是相对于当前 .gitignore文件 的路径
路径写法:
/css/a.css
/css/*.css
/a.html
#忽略 build/ 目录下的所有文件
build/
# 忽略后缀名为 .a 的所有文件
*.a
# !表示取反,继续追踪名为:lib.a 的文件
!lib.a
# 只忽略根目录下的 TODO文件夹,不包含 subdir/TODO
/TODO
# 忽略build下的所有文件
build/
# 忽略doc/notes.txt, 但 doc/server/arch.txt 不会忽略
doc/*.txt
# 忽略 doc/ 文件夹下所有后缀名为 .pdf 的文件
doc/**/*.pdf

1 使用# 表示注释,例如:# 这是注释内容
2 使用*表示通配符,匹配所有文件,例如:/css/*.css

分支 (超重要,一个不会分支的码农别说是程序员)

合并分支冲突

注意:合并分支时出现冲突只能手动处理文件,然后,再次提交

如果在一个从分支中做了修改,然后,在主分支中也做了修改。
此时,将这个从分支合并到主分支的时候,就会出现合并冲突的问题!
在两个分支中同时修改了一个文件中的内容,此时,就会造成合并分支冲突
,如果发生了合并冲突,需要我们`手动解决`!
1 `决定保留哪个分支中的内容`
2 `重新提交`
操作:将 hotfix 分支,合并到cart分支中
HEAD:表示当前分支
hotfix: 表示被合并分支
 <<<<<<< HEAD
        <span>第三次修改的内容</span>
        <cart>这是在 cart 分支中提交的内容</cart>
 =======
        <span>第三次修改的内容 --- hotfix 修改bug</span>
 >>>>>>> hotfix

分支的说明


远程仓库操作


将代码提交到远程仓库(HTTPS)

获取远程仓库内容

简化操作

回到开始:看那个推送:

git push https://github.com/MaWenxing/sh-demo1.git master

如果每次更新推送,难道都要把这全部复制一遍吗???是不是觉得这样很坑呢???那么来简化吧!

简化操作效果一:
1. git remote add origin  https://github.com/MaWenxing/sh-demo1.git
2. git push  origin master

详解一:

简化操作效果二:
1. git remote add origin  https://github.com/MaWenxing/sh-demo1.git
2. git push -u origin master
3. git push origin
以后拉取:
4. git pull origin

详解二:

SSH介绍

非对称加密、公钥和私钥

GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的,
而 Git 支持 SSH 协议,所以,GitHub 只要知道了你的公钥,
就可以确认只有你自己才能推送,从而省去每次输入密码的操作。
可以同时设置多个SSH key,比如:你可以在公司电脑提交需要一个key,
回家后自己的电脑提交也需要一个key
ssh是一种安全的传输模式
github要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码,
用以验证你是否为合法用户,为了省去每次都要输入密码的步骤,采用shh公钥,密钥
也就是你说的sshkey来验证你是否为合法用户
在你的电脑生成了一个唯一的ssh公钥和私钥,公钥放到github上面,当你推送的时候,git就会
匹配你的私钥是否跟github上面的公钥是配对的,正确就认为你是合法的,允许推送。
sshkey可以理解为是你的身份标识,放在github上面表明你是这个项目的一个开发人员,但是别
人是可以截获的,你本机的私钥别人就无法截获,sshkey就可以保证每次传输都是安全的。

将代码提交到远程仓库(SSH)

通过 SSH 的方式能够:

最佳实践

github搭建博客

1 在本地工作目录使用git初始化 `git init`
2 创建自己的博客项目
3 将创建好的博客添加到暂存区 `git add [文件路径]`
4 本地提交: `git commit -m "第一个博客"`
5 创建分支:`git branch gh-pages` 分支名称固定!
6 切换分支:`git checkout gh-pages`
7 提交到github:`git push [github仓库地址] gh-pages`
8 查看github中对应的仓库中,是不是提交到了 "gh-pages" 分支
9 访问:<github用户名>.github.io/<仓库名>/<文件名>
10 默认会访问 index.html

动态页面:.jsp / .php / .asp / .aspx

上一篇 下一篇

猜你喜欢

热点阅读