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,粘贴生成即可。
- 查看是否已经存在SSH:
-
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 pull
和git 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库:
-
国内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;自搭服务器时会用到;
网友评论