美文网首页
Git Github

Git Github

作者: 黑色的五叶草 | 来源:发表于2017-07-07 17:51 被阅读0次

    课程目标

    • 知道 GitHub 和 Git分别是什么,有什么作用
    • 熟悉Git 的基本使用,能使用 Git 向 GitHub 提交代码

    命令行与Git

    1. 什么是命令行

    • GUI(Graphical user interface)图形界面,例如QQ登录界面
    • Cli(Command-line)命令行,例如windows开机代码界面
    • Windows回车用两个字符表示(文本上移10+换行13)-next line + return
    • Windows V.S. Linux
      相同点:都是用Command-line来与系统进行交互
      不同点:命令基本都不一样
      Windows:cmd(默认)、PowerShell
      Linux:Terminal、iTerm(Mac)

    2.常用命令

    • pwd 当前所处目录(当前路径的全称)。
    • ls 当前目录下的所有文件都被打开(列出)。
    • ls -a 相较于ls会多出以.开头的文件,./ ../.开头的文件可做隐藏文件。
      ./即当前目录;../即上一层目录。/可以省略
      ls ./ 把当前目录的列表打开
      ls ../ 把上一层目录的列表打开
    • ls -l 当前目录下所有文件的具体信息
      drwxr-xr-x 1 hahadekuai 197121 3528024 十二 15 03:56 12306Bypass_1.10.74/
      d 目录
      rwx 管理员对它的权限
      xr-x 用户组对它的权限
      xr-x 当前用户对它的权限
      hahadekuai 谁拥有它
      35028024 它的大小,352多k
      十二 15 03:56 时间
      12306Bypass_1.10.74 文件名
    • cd 切换目录
      ~ 表示当前用户的根目录
      cd .. 切换到上一层目录
      cd+文件名前缀+tab自动补全文件名+回车。跳转到自动补全的目录
    • mkdir 创建目录。
      madir+ 文件夹名 创建文件夹
      touch+ 文件名 创建文件
    • mkdir -p 同时创建多个文档
      mkdir -p a/b/c 同时创建a、b、c三个文档
    • rm
      rm+ 文件名 删除文件
      rm -rf+ 文件夹名 删除文件夹
    • mv 重命名
      mv frank frank2
      1.mkdir frank
      mv frank frank2 移动frank文件到frank2
      2.mkdir frank;mv frank frank2 创建frank文件,将frank重命名为frank2
      mkdir frank && mv frank frank2
      ; 与 && 间区别:
      ; 是一个命令一个命令去执行,即使前面的命令错误,后面的命令一样会生成
      && 是前面的命令必须要成功,后面的命令才能运行
    • cp 复制
      cp a b 把a复制成b
    • echo
      echo 1 > test.txt 把1的内容打到test.txt文件中
    • cat
      cat test.txt 把test.txt文件中内容显示出来
      浏览方法可用cat test.txt | less 用J K操作上下;按Q退出
      | 管道,前面的命令传给后面的命令
    • head 显示命令的前几行
      head -n 3 test.txt 显示test.txt.文本中前三行
    • tail 显示命令的尾几行,用法同head
    • du -sh 显示目录大小(多少k)
    • man xxx man阅读xxx手册
      man ls 阅读ls的手册(与 -h; --help相同)
    • xxx -h 不是总被接受
    • xxx help
      ls --help | less 阅读ls的帮助文档
    • path 告诉命令行去哪找命令(特殊使用方法,在计算机高级设置path环境变量中,在/user/bin后面+;文件名
      which ls 告知ls在哪里
    • 命令行的使用规则:
      命令行 子命令 -p --param --param2=xxx
      参数里有空格加引号
      大小写敏感(Windows不区分)
    • vivim
      输入:i(进入可编辑模式)
      退出:ESC:qw 或 ESC ZZ
      新手最常见的问题:怎么退出vim?输入:,write保存;再输入:quit。缩写:wq

    小技巧:

    • alt+. 重复输入过的参数
    • !! 重复上一层命令
    • . 当前目录
    • .. 上一层目录
    • “ ” 告知是一个整体,参数中有空格是加引号
    • ~ 当前所处目录
    • - 回到上一层目录,同..
      cd - 同 cd .. 返回上一层目录
    • 复制与粘贴 可用鼠标中键

    Git命令

    git简明指南

    1.本地仓库(本地操作)

    Git0.png Git1.png Git2.png
    • git中红色表示不能被提交,绿色表示可以被提交。
    • git add . 添加所有.开头的文件
      git add * 添加所有除了.开头的文件
      add 文件是add本次状态与上次状态之间的差别(变动);两次add显示的是第二次add的状态
      add的是文件的改动,add也会有开启文件跟踪的效果
    • commit 提交;把add过的变动提交到本地仓库中
    • git commit -m "本次提交内容的叙述" 一次提交多个add过的文件,- m "xxx"可跳过vi编辑界面。
    • git commit -v -v会列出所有变更
      git commit -v --amend
    • commit后文件会被存储到head.git本地仓库
    • git checkout -- readme.txt 丢弃工作区修改(撤销命令)
    • git checkout -b dev 切换dev分支
    • git diff readme.txt 查看的是readme.txt上一次add后,对其修改的内容;如修改后add到暂存区,则不会显示修改内容。
    • git log --pretty=oneline 查看提交记录(简短的)
    • git reflog 十六进制编码 查看命令记录,寻找commit id,用于恢复记录。
    • git reset --hard 十六进编码 回退版本
    • git reset HEAD readme.txt 把暂存区(add过的文本)的修改撤销,重放回工作区 之后用git checkout -- readme.txt,丢弃工作区修改
    • git checkout -- readme.txt 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次git commit或git add时的状态。 --存在是为撤销修改,不填写--则为切换分支
    • 删除文件的两种情形:
      一、一般情况下,直接在文件管理器中把没用的文件删了,或者用rm命令删了。从版本库中删除文件分三步: 1.rm test.txt 2.git rm test.txt 3.git commit -m "remove test.txt"
      二、删错了,想要恢复版本库的文件: git checkout -- test.txt

    2.远程仓库(推送改动)

    Git远程单人操作:

    方法一:
    1.empty repo(github上) 2.git clone 3.touch README.me 4.git add 5.git commit 6.git push

    • git clone +(https or ssh) 将远程仓库克隆到本地
    • git status 查看当前目录文件状态 git status -s (同git status --short) 简短查看 git status -b 显示在哪个分支上 git status -sb 以上两步的简写(绿色是本地分支,红色是远程分支)
    • origin 默认远程仓库仓库名
      master 默认默认分支名
      本地的分支名和对应远程的分支名可以不同
      git remote add origin+git@github.com:fantasy-hub/test2.git 添加远程仓库
    • git push origin master:master 本地的master(前)分支push到远程的master(后)分支 origin仓库中

    方法二:
    1.mkdir test2 2.git init 3.touch README.md (vi README.md ) (cat README.md) 4.git add . 5.git commit . 6.git push --set-upsteam origin master (git push -u origin master 本地的master(前)分支push到远程的master(后)分支 origin仓库中 加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分 支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)

    Git远程多人操作

    1.git push 2.UU README.md 这个文件冲突了 3.解决冲突:==== <<<< >>>> 4.git add . 5.git commit . 6.git push

    • git reset --hard HEAD
    • git pull 把GitHub的代码下载到Git上
    • git status -sb 运行提示UU为冲突
      解决冲突的方法:
      1.vi README.me 去搜索====
      2.往上找<<<<本地冲突的部分,往下找>>>>远程冲突的部分
      之间的内容为本地和远程的冲突
    • git pullgit fetch区别:git fetch只同步仓库内容,对index中内容不做处理
      优点:可以不关心冲突
    • git merge origin/master 把远程的master分支合并到当前

    总结:
    1.git clone 2.git pull 3.解决冲突 4.git push 解决冲突后又回到单人操作

    1.git init 2.git add . 3.git commit . 4.git push( -u origin master)

    新建远程分支

    1.git branch feature1 新建feature1分支 git branch 查看分支,出现: feature1 *master *表示当前所在分支 2.git checkout feature1 切换到feature1分支 git branch 查看分支 3.git push origin feature1:feature1 把本地的feature1(前)push到远程的(feature1) 或 git push -u origin feature1 合并分支 4.git checkout master 切换到主分支 5.git merge feature1 合并分支 删除分支-本地分支 6.git branch -d feature1 删除分支 强制删除用D 7.git brach -a 可以查看所有的包括远程的分支(绿色是本地分支,橙色是远程分支) 删除分支-远程分支 8.git push origin :feature1 本地不写分支名,把空分支推送到feature1

    重置

    • git reset 只要commit过,就不会丢失。即使reset --hard过
    • git reflog 恢复

    3.GitHub

    • GitHub是负责托管Git的远程仓库

    GitHub生成SSH key的方法

    • 创建仓库,如果要使用Use SSH,需要上传ssh public key
      方法:
      1.点击右上角头像,选中Settings
      2.左边出现一列选项,选中SSH and SSH keys
      3.右上角点击New SSH key (可利用谷歌搜索:coding.net 生成 ssh key。选中搜索结果第一个—SSH公钥配置 - Coding)
      4.在生成工钥栏中,复制代码ssh-keygen -t rsa -b 4096 -C "your_email@example.com",添加到git中,连敲三个回车
      5.在代码Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.行中,选中后半部分复制。在git中输入:cat /c/Users/Administrator/.ssh/id_rsa.pub 回车
      6.出现ssh-rsa引导的很长的代码——复制到github的key文本框中
      全流程:
      use-ssh-key流程.png

    相关文章

      网友评论

          本文标题:Git Github

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