目的
借助github托管项目代码
基本概念
仓库(Repository)
仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库
收藏(Star)
仓库主页的star按钮,指收藏的人数 ;收藏项目,方便下次查看
Fork(复制克隆项目)
复制别人的仓库到自己的仓库,独立存在
PullRequest(发送请求)
Fork别人的仓库,自己在自己仓库下进行项目修改,请求原来项目的主人也进行更改自己的仓库,如果原项目主觉得修改有意义,则将请求合并到原仓库
Watch(关注)
Watch某个项目后,此项目有更改后会第一时间通知你
Issue(事务卡片)
发现代码的BUG,但是目前没有成型的代码,需要讨论时用
基本使用
1.创建项目仓库
- 点击左上角的黑猫,然后点击new
- 填写信息并创建
2.创建文件
- Add file - Create new file
- 填写文件名和内容;填写本次创建文件的描述
3.修改和删除文件
4.查看提交、修改、删除记录
- 可以看到所有的提交记录
- 查看某次修改的详细内容
5.上传文件
- Add file-Upload files
- 点击choose your files/直接拖动选择多个上传文件,填写提交信息描述.
6.issue
- 这个是gsh(另一个)账户,进入之前第一个账户创建的仓库—点击issue—点击New issue
- 当在别人的项目下发现问题时,提交讨论问题(git2账户)
- 提交成功
- 在git1(仓库host)下可以看到git2账户提交的issue,点击可查看详情
- 可以选择回复(会公开显示在issue下),或者closed (将不会公开)
- 当项目主人认为其他人提交的issue不合适时,可以关闭这个issue的讨论
7.主页
8.关注和收藏
- 在git2账户下可以关注或者收藏git1的仓库,关注此项目时,当此项目有改动时系统会通知git2账户
9.Fork
- 在git2账户下,fork(克隆)git1账户下的仓库
- 在git2账户下成功fork了git1的项目,此仓库独立与git1的仓库
- 在git2账户下创建会修改文件
- 比较本次的项目的改变并提交pull request
- 添加本次pull requests的说明后create pull requests
- 在git1账户下可以查看到git1提交的pull requests
- 可查看本次pull requests的详细信息,确认后可以点击merge进行合并
- 确认merge
- 之后就可以在git1账户(host)的仓库下查看到
10.比较两个分支的变化
- 在仓库名字后加"/compare"即可比较两个分支的变化情况
11.Projects
可以制定任务计划表,清晰的显示项目的进展情况
-
点击New Project
-
填写描述等信息
- 添加列
- 填写列的基本信息
- 在每一列中添加对应的计划
- 每一列的计划任务可以互相拖动
12.insights
项目的一些统计信息,如: 项目的访问情况,项目的克隆情况,项目的关注情况等…
13.Wiki
可以放项目的一些资料,介绍等等…
14.settings
可以修改仓库名字,改变仓库的可见性,删除仓库等
也可改变项目的主题
git的使用
git下载地址
https://git-scm.com/downloads
基本使用命令
sweetheart@sweetheart-PC:~/git-test$ git --version
git version 2.17.0
sweetheart@sweetheart-PC:~/git-test$ vim index.html
sweetheart@sweetheart-PC:~/git-test$ ls
index.html
sweetheart@sweetheart-PC:~/git-test$ git status
fatal: 不是一个 git 仓库(或者直至挂载点 / 的任何父目录)
停止在文件系统边界(未设置 GIT_DISCOVERY_ACROSS_FILESYSTEM)。
sweetheart@sweetheart-PC:~/git-test$ git init
已初始化空的 Git 仓库于 /home/sweetheart/git-test/.git/
sweetheart@sweetheart-PC:~/git-test$ git config --global user.name "username"
sweetheart@sweetheart-PC:~/git-test$ git config --global user.email "xxxxx@qq.com"
sweetheart@sweetheart-PC:~/git-test$ git status
位于分支 master
尚无提交
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
index.html
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
sweetheart@sweetheart-PC:~/git-test$ git add index.html
sweetheart@sweetheart-PC:~/git-test$ git status
位于分支 master
尚无提交
要提交的变更:
(使用 "git rm --cached <文件>..." 以取消暂存)
新文件: index.html
sweetheart@sweetheart-PC:~/git-test$ git commit -m "test remote"
[master(根提交) 019a626] test remote
1 file changed, 1 insertion(+)
create mode 100644 index.html
sweetheart@sweetheart-PC:~/git-test$ git status
位于分支 master
无文件要提交,干净的工作区
sweetheart@sweetheart-PC:~/git-test$ git remote
sweetheart@sweetheart-PC:~/git-test$ git remote add origin "https://github.com/xxxx/xxx.git"
sweetheart@sweetheart-PC:~/git-test$ git remote -v
origin https://github.com/xxxx/xxx.git (fetch)
origin https://github.com/xxxx/xxx.git (push)
sweetheart@sweetheart-PC:~/git-test$ git branch
* master
sweetheart@sweetheart-PC:~/git-test$ git push origin master
Username for 'https://github.com': username
Password for 'https://sweetheart-7-7@github.com':
To https://github.com/sweetheart-7-7/whb.git
! [rejected] master -> master (fetch first)
error: 无法推送一些引用到 'https://github.com/sweetheart-7-7/whb.git'
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。
sweetheart@sweetheart-PC:~/git-test$ git push -u origin +master
Username for 'https://github.com': username
Password for 'https://sweetheart-7-7@github.com':
对象计数中: 3, 完成.
写入对象中: 100% (3/3), 231 bytes | 231.00 KiB/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/sweetheart-7-7/whb.git
+ 69e8a94...019a626 master -> master (forced update)
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'
# 克隆项目到本地
sweetheart@sweetheart-PC:~/git-test$ git clone "https://github.com/gsh101/test-git.git"
正克隆到 'test-git'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 完成.
sweetheart@sweetheart-PC:~/git-test$ ls
index.html test-git
查看设置: git config --list
remote: Permission to xx/test-git.git denied to xxx. fatal: u
清空用户目录下配置的全局用户名和密码就可以了。~/.gitconfig
重新push, 就会提示输入用户名和密码了。
git的基本框架与github的联系
注: 此图片转载自菜鸟教程。
workspace:工作区
staging area:暂存区/缓存区
local repository:或本地仓库
remote repository:远程仓库
git的基本操作
创建仓库命令
下表列出了 git 创建仓库的命令:
命令 | 说明 |
---|---|
git init | 初始化仓库 |
git clone | 拷贝一份远程仓库,也就是下载一个项目。 |
提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
下表列出了有关创建与提交你的项目的快照的命令:
命令 | 说明 |
---|---|
git add | 添加文件到仓库 |
git status | 查看仓库当前的状态,显示有变更的文件。 |
git diff | 比较文件的不同,即暂存区和工作区的差异。 |
git commit | 提交暂存区到本地仓库。 |
git reset | 回退版本。 |
git rm | 删除工作区文件。 |
git mv | 移动或重命名工作区文件。 |
提交日志
命令 | 说明 |
---|---|
git log | 查看历史提交记录 |
git blame | 以列表形式查看指定文件的历史修改记录 |
远程操作
命令 | 说明 |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
分支操作
命令 | 说明 |
---|---|
git branch 分支名 | 创建分支 |
git ckeckout -b 分支名 | 创建+切换分支 |
git branch -d 分支名 | 删除分支 |
git branch | 查看分支 |
gti checkout 分支名 | 切换分支 |
git merge 分支名 | 合并某分支到当前分支 |
搭建个人博客(静态)
命名仓库
- 格式: 用户名.github.io
上传主页
- Add file-upload file-上传主页,必须有index.html
访问
- 上传完毕后访问: 用户名.github.io 即可
添加项目介绍
进入settings-Change theme
选择主题并进入自定义修改页面
修改项目主页的介绍
在gh-pages分支下修改配置文件
访问项目介绍页
- 访问: 用户名.github.io/仓库名 即可查看