# Github教程 💛

首先你需要一个Github账号,没有可以先去注册:https://github.com

# 新建项目

  1. 点击右上角的➕号

  2. 点击new repository

  3. 根据下面这张图填进信息,创建完成后就会在仓库中看到项目了。

图片

# Git下载与配置

如果想要系统的学习一遍Git,推荐廖雪峰老师的Git教程

  1. 安装Git

  2. 安装完成后,打开Git Bash

  3. 配置账号

git config --global user.name “your_username” #设置用户名
git config --global user.email “your_registered_github_Email” #设置邮箱地址
1
2
  1. 配置ssh-key (如果想要clone别人的项目,这一步要配置的)
  • 打开Git Bash,进入~路径下,必须保证当前路径在~路径下
  • 输入以下命令
ssh-keygen -t  rsa -C "your_registered_github_Email"//建议写自己真实有效的邮箱地址。注意:在敲代码是不要将双引号也敲击进去。
Enter file in which to save the key (/c/Users/xxxx_000/.ssh/id_rsa)://此时我们什么都不需要操作直接回车就好
Enter passphrase (empty for no passphrase):  //此时要你输入码(可以为空,直接回车就好,也可以输入你的密码,这个密码在你最后把本地资源推送到github上面的时候回会让你填写密码,此时密码隐藏,你输入进去是看不到的)
Enter same passphrase again: //再次确认密码(如果你第一次有输入密码,这次就再输一次,如果没有直接回车就行了)
1
2
3
4
  • 直到看到下面这些代码
Your identification has been saved in /c/Users/xxxx_000/.ssh/id_rsa. //生成的密钥
Your public key has been saved in /c/Users/xxxx_000/.ssh/id_rsa.pub. //生成的公钥
The key fingerprint is:e3:51:33:xx:xx:xx:xx:xxx:61:28:83:e2:81 xxxxxx@yy.com
*本机已完成ssh key设置,其存放路径为:c:/Users/xxxx_000/.ssh/下。其中xxxx_000为你的用户名
1
2
3
4
  • 添加ssh key 到Github上
    • 打开c:/Users/xxxx_000/.ssh里面的id_rsa.pub文件,全选复制公钥内容。或者在Git Bash中输入cat ~/.ssh/id_rsa.pub,也可以得到公钥内容

    • 打开Github,点击右上角的头像

    • 点击Settings

    • 点击SSH and GPG keys

    • 点击New SSH key,Title自定义,将公钥内容复制到key中。

  • 测试ssh keys是否设置成功。
 ssh -T git@github.com
1

# 上传代码到Github

# 复制项目链接并下载项目

  1. 打开刚刚新建的GitHub项目,进入首页

  2. 点击clone or download,复制链接 图片

# 上传代码到Github

打开Git Bash,输入下面命令,再打开Github就能看到了

git clone https://github.com/DFairy/dfairyblog.git //刚刚复制的地址
cd dfairyblog //你clone下来的文件名


/**将你要上传的文件放入你clone下来的文件中再继续下面的操作**/
git add . //别忘记后面的.,此操作是把文件夹下面的文件都添加进来)
git commit  -m  "提交信息"  //“提交信息”里面换成你需要,如“first commit”
git push -u origin master   //此操作目的是把本地仓库push到github上面
1
2
3
4
5
6
7
8

提示

Git Bash 里面不可以用Ctrl+c和Ctrl+v来复制粘贴,只能点击鼠标右键

# 创建分支

上传分支代码命令

git checkout -b branchname(分支名字)   //创建并且切换分支.
git add . //别忘记后面的.,此操作是把文件夹下面的文件都添加进来)
git commit  -m  "提交信息"  //“提交信息”里面换成你需要,如“first commit”
git push origin: branchname
1
2
3
4

以下是操作分支的命令行

git checkout -b branchname(分支名字)    //创建并且切换分支.
git checkout  branchname(分支名字)      //切换分支
git push origin branchname             //将分支推送到github
git branch -r                          //查看所有远程分支的名字(a是本地分支加远程分支)
git branch -d branchname               //删除本地分支,要切换到master才能删除
git push origin: branchname            //删除github上面的远程分支
git checkout master                    //从分支切换到主支
1
2
3
4
5
6
7

# 配置自动上传代码文件

  1. 配置好git(同上第二步)

  2. 创建sh文件

//deploy..sh

#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 生成静态文件
# npm run build

# 进入生成的文件夹(根据你生成的路径)
# cd docs/dist

# 如果是发布到自定义域名
# echo 'www.example.com' > CNAME

git init
git add -A
git commit -m 'deploy'

# 如果发布到 https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master

# 如果发布到 https://<USERNAME>.github.io/<REPO>
# git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages

cd -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  1. 执行
  • 双击deploy.sh文件
  • 点击shift同时文件根目录下右键点击Git Bash Here 输入命令行bash deploy.sh

# 配置Git指定不上传的文件

新建文件.gitignore,在里面加上文件名就好了

.DS_Store
node_modules
/dist
 
# local env files
.env.local
.env.*.local
 
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
 
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 删除Github项目

  1. 点击仓库上方的Settings

  2. 将页面拖动到底部,点击delete this repository,再输入你要删除的项目名就好了。

# 用Github展示你的网页

  1. 创建分支gh-pages,操作命令见创建分支

  2. 创建完成后上传内容,操作步骤同上

  3. 打开网址https://[你的github名字].github.io/[你的项目名字]就可以看到展示的内容了, 拿这个博客举例https://dfairy.github.io/dfairyblog

# 我在Github操作中遇到的几个报错的解决方法

  1. 问题:我在提交Github的时候报了下面这个错误

$ git push -u origin master To https://github.com/DFairy/img.git![rejected]master -> master (fetch first) error: failed to push some refs to 'https://github.com/DFairy/img.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

✔️解决方法:

1: 进行push前先将远程仓库pull到本地仓库
$ git pull --rebase origin master
$ git push -u origin master
 
2: 强制push本地仓库到远程 (这种情况不会进行merge, 强制push后远程文件可能会丢失 不建议使用此方法)
$ git push -u origin master -f
 
3: 避开解决冲突, 将本地文件暂时提交到远程新建的分支中
$ git branch [name]
# 创建完branch后, 再进行push
$ git push -u origin [name] 
1
2
3
4
5
6
7
8
9
10
11

  1. 问题:尝试新增一个文件夹,push完之后报错如下:

Everything up-to-date Branch 'master' set up to track remote branch 'master' from 'origin'.

原因:

也就是说一开始 git 服务器仓库是完全空的, 不包含任何一个分支(branch),因此刚开始 Push 时需要指定一个。

✔️解决方法:

$ git remote -v
origin  https://github.com/DFairy/essay (fetch)
origin  https://github.com/DFairy/essay (push)
$ git branch
* master
1
2
3
4
5

  1. ❓问题:我从分支切换到主支的时候报了下面这样的一个错

git checkout master error: The following untracked working tree files would be overwritten by checkout:

原因

通过错误提示可知,是由于一些untracked working tree files引起的问题。所以只要解决了这些untracked的文件就能解决这个问题。

✔️解决方法

git clean -d -fx
1

git clean -d -fx表示:删除 一些 没有 git add 的 文件;

git clean 参数

 -n 显示将要删除的文件和目录;
 -x -----删除忽略文件已经对git来说不识别的文件
 -d -----删除未被添加到git的路径中的文件
 -f -----强制运行
 git clean -n
 git clean -df
 git clean -f
1
2
3
4
5
6
7
Last Updated: 12/2/2019, 10:17:52 PM