git操作

作者: 进击的阿群 | 来源:发表于2016-12-22 23:21 被阅读70次

    git知识点梳理

    • 术语
      • 图形界面(GUI);
      • 命令行(cli);
      • 操作系统(OS);
    • git安装
      • 命令行选项,选择第三个;
      • 键盘编号选项,选择第二个;(因为windows沿用打字机式回车是换行和归位两个动作,故win下回车是10+13)
      • MINTTY,选择第一个;
    • 生成SSH Key
      • 查看是否已经存在SSH:ls -al ~/.ssh;
      • 生成SSH:ssh-keygen -t rsa -b 4096 -C "test@youremail.com";三次回车;
      • 粘贴SSH:
        • clip < ~/.ssh/id_rsa.pub;
        • 或者cd到对应目录(目录会在生成提示显示),然后cat打开,复制;
      • 打开github,settings—SSH—Add,粘贴生成即可。
    • github access token && gist id
      • 打开github,settings最后一项,创建access token;
      • 页面上方gist,可以设置gist,保存好之后,URL用户名之后的字符串就是gist id;
    • Linux命令行command
      • cmd中复制:右键菜单栏—编辑—标记—拉选复制,右键粘贴;
      • Linux中复制:拉选—右键复制粘贴;
      • cmd中ctrl+c终止命令;
    命令 用法 作用
    pwd pwd 当前路径
    ls ls -a、ls -l 列出项目
    cd cd a、cd ../、cd ~(用户目录)、cd -(上一命令路径) 定位
    mkdir mkdir -p a/b/c(创建路径path) 创建文件夹
    touch touch a.txt 创建文件
    rm rm -r 删除
    mv mv a b 重命名
    cp cp -r、cp a b 复制
    echo echo 1 > a.txt 写入文本,再次写入会覆盖
    cat cat a.txt 打印输出
    less cat a.txt | less 简略输出,按q退出
    !! - 重复上行命令
    alt+. - 上行最后的参数
    tab cd a..按tab补全、按tab显示路径 $1
    .a - 隐藏文件
    -r rm -r删除文件夹 递归
    -l ls -l 详细
    -a - 所有,包括.a隐藏文件
    command a;command b mkdir a;cd a 连用命令
    command a&& command b - 连用命令,只第一个命令生效才能执行第二个
    --help ls --help 获取帮助
    -h ls -h 获取帮助
    i vim中按i 进入编写模式
    esc vim编写模式下按esc 退出编写模式
    :write vim中:write 保存
    :quit vim中:quit 退出
    :wq vim中:wq 保存并退出
    • git命令
      • 方法一,联网状态下建立git库:
        • git init:创建git本地仓库;
        • git add:提交改动到缓存;开启跟踪;
        • git config --global user.name "xxx";
          git config --global user.email "xx.com";
          commit提交到本地仓库时,要注明姓名和邮件名,不写--global,下次仍然会提示,不写的话方便切换github账号,而且安全,所以别在公司用--global;
        • git commit -am "xxx":提交到本地仓库,如果不写-am(或m) xxx信息,那么会弹出vi编辑器,手动输入信息即可;vi的好处是可以很详细地记述信息;(vim是vi的强化版)
        • git clone:在clone之前,先在远程github上new Repo远程仓库,要写Readme.md(Raw按钮是查看未渲染内容);git clone就是复制远程仓库到本地;
        • git status:用git status -s(--short -b -sb)可以查看改动状态;例如,git add后,看git status会显示??、?A、AA、AM等开头的信息;
        • vi Readme:调用vi编辑;
        • git push:git push origin master(本地):master(远程),第一次写git push时,要写上仓库名,分支名;有时不一定是origin和master这个名字,要看具体的;
      • 方法二,离线建立git库:
        • git init;
        • touch README.md;
        • vi README.md编辑下内容;
        • git add .; git commit -m 'x';
        • git remote add origin 远程仓库url
        • git push;此时,可能会弹出提示,用名称匹配git matching;
        • git push -u(--set-upstream) origin master(建立远程仓库);
      • 方法三,合作项目:
        • 首先github有两种合作模式,一个是github--settings里找到collaborators,另一个是organization里找team;
        • 然后拉代码git pull;
        • git pull时,可能会遇到合并冲突(merge conflict),解决办法见下面介绍;
        • git add .; git commit -m(-v、-am)'x';git push;
      • 合并冲突:
        • merge conflict,在git status里显示UU;
        • vi 打开文件;
        • 搜索====4个等号;
        • 往上找<<<<,往下找>>>>,冲突的结构是:
        <<<<
        本地冲突
        ====
        远程冲突
        >>>>
        
        • 将冲突拿出来,放在<<<<之上,然后删除掉冲突结构即可:
        本地冲突
        远程冲突
        <<<<(从这里开始删除)
        ...
        ====
        ...
        >>>>(到这里删除结束)
        
      • git pullgit fetch的区别:
        • git pull不仅拉到git本地仓库,同时改变工作目录文件;
        • git fetch只拉到本地仓库,不改变本地工作目录文件;
      • 分支命令:
        • git branch 查看分支,-a 可以查看到远程分支;
        • git branch a 创建本地分支;
        • git checkout(迁出) a 切换到a分支;
        • touch test.html;
        • git add .; git commit;
        • git push -u origin a 创建远程分支;
        • git checkout master 切回主分支;
        • git merge a 合并到主分支;
        • git branch -d(--delete) a 删除a分支(删除前需切换,合并);
        • 如果不合并直接删除会报错,如果执意要删除,就用git branch -D a 大写D强制删除;
        • git push origin :a 在冒号前不写本地分支,作用是删除远程分支a;
      • 解决误删:
        • git status可以查看改动状态,[ahead 4]是领先4次改动的意思;
        • git log可以查看这4次,其中有用的是id字符串;
        • git reset id字符串(前6位就可以) 可以回到id那个状态;
        • 之前的方法,是恢复旧内容,新内容还在,如果不要新内容,则git reset --hard(硬盘) id字符串;
        • 虽然将硬盘上的新内容删除了,但是只要commit过的内容,就不会丢失;
        • git reflog 查看所有git操作,能够找到--hard删除的那步;
        • git reset id字符串,可找回;
    • 国内git替代品
      • coding.net;
      • OSChina;
      • GitCafe;
    • git简易指南
      git简易指南
    • 练习vim的游戏
      vim adventures
    • 读懂diff
      读懂diff
    • 命令行解释
      命令行解释
    • npm:
      • npm是node里的命令,apm是npm的一个分支,装插件或环境时,都是用npm就可以;
      • npm如果下载外网资源没速度,就手动下载好资源,放入npm提示的保存文件夹中,会自动解析;
      • npm install,可以装软件,软件装好之后,如果是需要添加进环境变量的,那就添加;
      • 环境变量设置:右键“计算机”——“属性”——“高级系统设置”——“环境变量”——“Path”(上下哪个path都可以),将软件安装目录路径添加进去,以分号隔开;
      • -v可以查看软件版本,例如:apm -v、python -v;
      • npm install -g server-mock;自搭服务器时会用到;

    相关文章

      网友评论

          本文标题:git操作

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