目的
托管项目代码
基本概念
仓库Respository
存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库。
收藏Star
收藏项目,方便下次查看。
复制克隆项目Fork
(深拷贝)
发起请求Fullrequest
被fork对象接受到fork的修改,等待张三查看、合并。
关注Watch
关注项目,当项目更新可接收到通知。
事务卡片Issue
发现代码Bug,但是目前没有成型代码,需要讨论时用。
主页
Github主页
仓库主页
个人主页
git
工作区域
基本信息设置
设置用户名和邮箱
初始化仓库步骤
- cd test
- git init
- git add a1.php
- git status
- git commit -m 'add a1.php'
- git status
修改仓库
- vim a1.php
- git add a1.php
- git commit -m '第一次修改文件并提交到仓库'
删除仓库文件
- rm -rf a1.php//本地删除
- git rm a1.php//从git暂存区中删除
- git commit -m '提交描述'
远程仓库管理
- git clone 仓库地址//复刻
- git push//本地仓库更新到远程//第四步
Github Pages搭建网站
- 访问https://用户名.github.io
- 搭建步骤
新建仓库名:用户名.github.io - 新建文件index.html
.gitignore
作用
在.gitignore添加了某个文件之后,这个文件就不会上传到github上被别人看见。
.gitignore 文件的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。
- 星号(*)匹配零个或多个任意字符;
- [abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
- 问号(?)只匹配一个任意字符;
- 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
- 使用两个星号() 表示匹配任意中间目录,比如a//z可以匹配 a/z, a/b/z 或 a/b/c/z等。
/mtk/
#过滤整个mtk文件夹
*.zip
#过滤所有.zip文件
/mtk/do.c
#过滤/mtk/do.c文件
fd1/*
#忽略目录 fd1 下的全部内容
/fd1/*
#忽略根目录下的 /fd1/ 目录的全部内容;
!/fw/bin/
!/fw/sf/
#不忽略 根目录下的 /fw/bin/ 和 /fw/sf/ 目录;
Git在添加.gitignore之前就push了项目
(为避免冲突可以先同步下远程仓库 $ git pull)
-
在本地项目目录下删除暂存区内容: $ git rm -r --cached .
-
新建.gitignore文件,并添加过滤规则(用文本编辑器如Notepad++)
-
再次add文件,添加到暂存区
-
再次commit提交文件
-
$ git commit -m “add .gitignore”
-
最后push即可
注意事项
- 命令和注释别在同一行,如*.txt #注释txt这样会导致这一行无法被识别
- git add .之前如果有改动.gitignore一定要 执行 git rm -r --cached .
- 合理使用.gitignore可以避免无用文件的上传,也可以防止重要配置信息的泄露