Git Github

课程目标

  • 知道 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.本地仓库(本地操作)

Git Github_第1张图片
Git0.png
Git Github_第2张图片
Git1.png
Git Github_第3张图片
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 [email protected]: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 "[email protected]",添加到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文本框中
    全流程:
    Git Github_第4张图片
    use-ssh-key流程.png

你可能感兴趣的:(Git Github)