git操作

git知识点梳理

  • 术语
    • 图形界面(GUI);
    • 命令行(cli);
    • 操作系统(OS);
  • git安装
    • 命令行选项,选择第三个;
    • 键盘编号选项,选择第二个;(因为windows沿用打字机式回车是换行和归位两个动作,故win下回车是10+13)
    • MINTTY,选择第一个;
  • 生成SSH Key
    • 查看是否已经存在SSH:ls -al ~/.ssh;
    • 生成SSH:ssh-keygen -t rsa -b 4096 -C "[email protected]";三次回车;
    • 粘贴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操作)