基本命令行
什么是命令行
- GUI(Graphical user interface)
- Cli(Command-line interface)
常用命令
- pwd 当前所处目录
- ls 当前目录所有文件
- ls -a 显示全部文件 ./当前 ../上一层目录
- ls -l 目录更详细信息
- cd 切换目录
- mkdir 创建目录
- mkdir -p 传路径作为参数
- touch 创建文件
- rm 删除文件
- rm -r 删除目录
- mv 重命名
- cp 拷贝
- echo 打印
- cat 输出
- cat xx | less 一行行输出
- hend 显示前部
- tail 显示尾部
- du -sh 人类可读文件大小
- man xx ; xx --help ; x -h ;帮助文档
小技巧
- ~ user/用户名
- !! 重复上次命令
- alt+. 上次最后参数
- “" 参数含有空格
- '-' 返回上次目录
命名行的使用规则
- 命令名 子命令 -p --param --param2=xx
- 大小写敏感
版本控制
Git&GitHub
Linus 大神又一力作,Linux作者
本地操作
- git init 创建仓库
- git add
1.1添加文件改动
1.2也会开启文件跟踪的效果 - git commit 把变动提交到本地仓库
1.1 git commit -m
1.2 git commit -v
远程操作
- git clone 仓库地址 克隆远程仓库
- git status -s 当前文件状态
- git push origin master:master 本地仓库推送远程仓库
- 一个仓库可以有多个远程仓库
- 每一个仓库有个名字,默认仓库名origin
- 每一个本地仓库可以有多个分支,默认分支名master
- 本地的分支名和对应远程的分支名可以不同
- git remote add origin 仓库地址 远程创建一个仓库
- git pull 远程仓库同步至工作目录
1.1 UU README.md 文件冲突
1.2 解决冲突 ==== <<<< >>>> - git fetch 同步至本地仓库
- git merge origin/master 远程分支合并至当前
新建远程分支
- git branch 创建本地分支
1.1 git branch -d xx 删除分支
1.2 git branch -D XX 强制删除
1.3 git branch -a 查看全部分支 - git checkout 切换本地分支
- git push origin xx:xx 本地分支同步远程分支
1.1 git push origin :xx 把空分支同步远程分支,删除远程分支 - git merge xx 合并分支到master
反悔功能
- git reset commit 本地仓库回溯
1.1 git reset --hard commit_id 工作目录同步回溯;慎用
只要commit过,就不会丢失。即使reset --hard
git 命令梳理表格
命令 | 可选 | 参数 | 作用 |
---|---|---|---|
git init | none | 创建一个本地仓库 | |
git add | <file> | . | 文件添加至本地仓库 |
git commit | -m "" --amend | none | 文件提交至本地仓库;--amend执行选项,编辑工具会显示最近一次提交的提交消息 |
git revert | HEAD | 可以取消指定的提交内容;使用后面要提到的rebase-i或reset也可以删除提交。但是,不能随便删除已经发布的提交,这时需要通过revert创建要否定的提交。 | |
git reset | --hard | <commit_id><HEAD^n><HEAD~><ORIG_HEAD> | 仓库回溯到指定HEAD;ORIG_HEAD还原重置之前的HEAD |
git cherry-pick | <commit_id> | 把在其他分支执行的<commit_id>的修改导入到master分支 | |
git status | -sb | none | 查看仓库当前的状况;ahead:领先 |
gitk | none | GUI界面查看仓库分支情况 | |
git diff | <file> | none | 查看文件具体修改内容 |
git log | --pretty --oneline --graph --oneline --decorate | none | 显示更新记录;文本形式显示更新记录的流程图;显示包含标签资料的历史记录 |
git reflog | none | 显示执行过的命令历史 | |
git clone | none | 克隆远程仓库 | |
git push | none | 本地仓库推送至远程仓库 | |
git pull | none | 远程仓库拉取至本地仓库;这时只执行fast-forward合并;执行pull就可以进行合并。这时,如果没有冲突的修改,就会自动创建合并提交。如果发生冲突的话,要先解决冲突,再手动提交;实际上pull的内容是fetch + merge组成的。 | |
git fetch | none | 远程仓库同步至本地仓库 | |
git merge | --squash | <branch_name> | 合并分支到master分支;fast-forward(快进)合并; 解决合并的冲突:这种合并不是fast-forward合并,而是non fast-forward合并。 |
git rebase | --continue --abort -i | <master><HEAD~> | 使用rebase可以使提交的历史记录显得更简洁;修改冲突后的提交不是使用commit命令,而是执行rebase命令指定 --continue选项。若要取消rebase,指定 --abort选项;执行-i选项,将指定的HEAD合并,将第二行的“pick”改成“squash”,然后保存并退出,所以接着会显示提交信息的编辑器,请编辑信息后保存并退出。 |
git branch | -a -d -D | <branch_name> | 创建、查看、删除、强制删除分支 |
git checkout | -b | <branch_name> | 创建分支并进行切换、切换分支 |
git stach | none | 暂存工作树和索引里还没提交的修改内容 | |
git tag | -a -am -n -d | <tagname> | -a选项执行。执行后会启动编辑区,请输入注解,也可以指定-m选项来添加注解;-n选项执行,可以显示标签的列表和注解; -d选项执行,删除标签 |