美文网首页
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