美文网首页
GitHub使用 (不定期更新)

GitHub使用 (不定期更新)

作者: 苦瓜_6 | 来源:发表于2018-05-05 11:15 被阅读0次

版本控制

  • 本地版本控制系统
  • 集中式版本控制系统 ( SVN) : 必须要联网
  • 分布式版本控制系统 (Git)

Git 优势 (Git 诞生自2005, Linux 开源社区):

  • 速度
  • 简单的设计
  • 允许上千个并行分支
  • 分布式

工具安装

windows 下载地址
Mac下载地址

常用命令

使用前的准备

  • 创建公钥私钥:
    ssh-keygen -t rsa -b 4096 -C "这里输入邮箱"
  • 复制公钥
    cat ~/.ssh/id-rsa.pub
    要把公钥添加到GitHub的SSH key
  • 设置用户名邮箱
git config --global user.name "xxx"
git config --global user.email "xxx"

-- global 表示一次设置好以后所有仓库都可以用,不用再次设置

  • 查看用户名,查看邮箱
git config user.name
git config user.email
  • 设置 git 记住密码
    git config --global credential.helper store
  • 查看 git 设置
    git config --list

常用操作

将目录变成仓库

git init

clone项目

  • 克隆仓库
    git clone <仓库地址>
    clone项目,把GitHub上的项目clone(下载)到本地变为本地仓库
    git clone git@github.com:XXX
  • 克隆某一个分支
    git clone --single-branch -b <分支名称> <地址>

将本地的更新推送到远程仓库

1.把文件添加到暂存区
git add .
说明:add 后面这个点 代表添加所有更新到暂存区。如果只想添加某个文件到暂存区,可以用 git add + 文件名 ,比如 git add a.md 表示只添加 a.md 这个文件;
如果只想添加本地仓库下的某个文件夹里的的所有文件,可以用git add 文件夹名/. ,比如 git add demo10/. 表示添加本地仓库下 demo10 这个文件夹下的所有文件到暂存区

2. 提交到本地库
git commit -am "add file"
说明:这个 add file 是对是本次提交的说明,根据实际情况修改 。
如果提交消息包含大量字符串,提交参数不用加 m ;此时会进入 vim 界面(按下 i 可以进入编辑状态),进行编辑,编辑完成后按下esc 进入命令状态,输入:wq (表示保存并退出)就好了。

3.将当前本地库的改动推送到远程库(origin)的master分支
git push origin master

查看状态

git status 可以查看当前状态

删除 某个文件夹

git rm -r --cached .idea    //  .idea是要删除的文件夹名, --cached不会把本地的.idea删除
git commit -m 'delete .idea dir'
git push -u origin master
提交过程中的异常/特殊情况
  1. 撤销commit (已经add 和 commit)
    git reset --hard origin/master
    可以通过git log 查看是否成功(这个会把上次提交之后本地的更新也抹掉)

  2. 忽略某个文件夹
    在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
    ignoring files

将远程仓库的变动更新合并到本地仓库

git pull

本地创建一个 git 项目推送到远程空仓库

1.、创建一个本地文件夹并将空文件夹初始化成一个仓库
git init
2、在GitHub上新建一个空仓库,只勾选 Public, 不选择“Initialize this repository with a README”
3、把远程库的地址添加个标签叫origin
git remote add origin git@github.com:xxx
xxx 是新建的仓库的SSH地址
4、最后就是正常的 git add ,git commit,git push 了
拓展:

  • 添加 / 删除 / 修改标签
    添加标签:git remote add 标签名 git@gitlab.com:xxx
    删除标签:git remote remove 标签名
    修改标签:
    git remote rename 旧的标签名 新标签名

  • 修改origin标签对应的地址
    git remote set-url origin git@github.com:xxx

分支操作

  • 创建本地库分支,比如dev
    git branch dev
  • 切换到dev 分支
    git checkout dev
    (git checkout master 可以回到主干)
  • 推送到origin地址的dev分支上
    git push origin dev
  • 把dev分支上的内容合并到master分支上
git checkout master
git merge dev
  • 查看当前分支
    git branch -a

  • 查看分支合并图
    git log --graph

  • 建立本地分支和远程分支的关联
    git branch --set-upstream branch-name origin/branch-name
    Git在本地新建分支后,必须要做远程分支关联。关联目的是如果在本地分支下进行git pull 和 git push操作时 ,不需要指定在命令行指定远程的分支。

使用 gh-pages 在同一个 repository中预览多个demo

  1. 本地创建 gh-pages 分支
    git branch gh-pages
  2. 将本地gh-pages 推送到远程
    git push origin gh-pages
  3. 将master 上的内容 合并到 gh-pages
    先切换到分支:
    git checkout gh-pages
    合并:
    git merge master
  4. 在GitHub上设置 GitHub pages
    每个demo的预览地址为:
    GitHub pages + 文件夹名 +index.html

比如,我的某个仓库的GitHub pages 地址为: https://arya1957.github.io/jQuery-demos/
那么我这个仓库下 demo1 de 预览地址为
https://arya1957.github.io/jQuery-demos/demo1/index.html

Git在本地新建分支后,必须要做远程分支关联。关联目的是如果在本地分支下进行git pull 和 git push操作时 ,不需要指定在命令行指定远程的分支。
git push --set-upstream origin gh-pages

需要注意的是:
每次要先push 到master ,然后切换到 gh-pages, 再merge,最后再执行 git push 命令

不使用 gh-pages 在同一个 repository中预览多个demo

  • 在 repo 的 Settings 页面里将 GitHub Pages 功能打开,并选中 master 分支,点 Save,得到一个「部署地址」
  • 在 repo 的 Settings 页面里将 GitHub Pages 功能打开,并选中 master 分支,点 Save,你就会得到一个「部署地址」,

之前都把问题搞复杂啦~

相关文章

网友评论

      本文标题:GitHub使用 (不定期更新)

      本文链接:https://www.haomeiwen.com/subject/rekilftx.html