#文件及文件夹创建删除
mkdir 文件名称 (创建文件夹) touch 文件名称 (创建文件) rm -r 文件名称 (递归删除) rm -rf 文件名称 (删除文件夹内的所有 无提示) rmdir 文件名称 (删除文件夹)#查看.搜索.历史
ls -a 查看所有 (包括隐藏目录) ls -l 查看 (以列表的形式显示) head -行数 文件名称 (查看文件前多少行) history (查看历史操作命令) ls | grep s (| 管道符 用于传递参数 将ls的查询结果 作为参数传递给 grep 查找其中包含s的内容)#复制.写入
ls >index.html (重定向:改变默认 重定向另一位置) echo 内容>要写入的文件 (覆盖原有内容) echo 内容>>要写入的文件 (追加内容) mv a.text 目录/新名称 (移动) cp a.text 目录/新名称 (复制)#请求
wget 网址 (下载文件) curl http://www.baidu.com (发送请求) curl http://www.baidu.com > 要写入的文件 whoami (查看当前用户) ssh status@192.168.141.95 (第一次请求 服务器会发来一个公钥 加密后 发给服务器 对方用自己的私钥解密 )#vi模式
##底行模式 set nu (设置行号) wq (退出保存) q! (退出不保存) /要搜索的内容 (在vi模式下 n为下一个目标元素 ) e! (撤销更改,返回到上一次保存的状态) ##命令模式 -u (撤销操作) yy 复制 p粘贴 G (光标移动到最下面) gg (光标移动到最上面) dd (删除行) i (编辑模式 可写入内容) ZZ (大写 保存并退出) u (辙销操作,可多次使用) ctrl+f (向前翻页) ctrl+b (向后翻页)#版本控制
svn(集中式) : 缺点 1 由于是集中式版本控制系统所以严重依赖与服务器 2 严重依赖网络 Git(分布式) 1 不需要中央服务器 每个人一个完整的版本库 2 版本库来自本地 不受网络限制 #git的使用 ##git命令 1 git init (初始化仓库 或将以后的克隆到本地.giy/) 2 git add -A (放入暂存区有三种方法 路径/名称 -A * ) 3 git commit -m'备注信息' (从暂存区放入仓库) 4 git config --global user.email 邮箱 (config只需要配置一次) git config --global user.name 用户名 5 git log (查看当前版本 以及历史存盘点) 6 git status (查看当前厂库状态 那些被修改了) 7 git checkout 文件名 (暂存区还原原到工作区) 8 git reset --hard 提交的id (每次提交时候都会生成一个id标示 git log可以查看)
##分支
git branch 分支名称 (创建分支) git checkout 分支名称 (切换分支) git checkout -b 分支名称 (快捷方式 创建并切换到新创建的分支) git branch (查看有那些分支 -a[可选参数 所有本地+远程仓库分支]) git branch -d 分支名称 (删除分支 -D强行删除) git merge 分支名称 (合并分支) ##远程仓库 ##创建仓库条件 1 xxx.git结尾目录 2 必须是一个 '裸仓库' git init --bare ##远程操作 git push 账户名@地址id:路径 要上传的分支 git pull 账户名@地址id:路径 要上传的分支 git remote and itcast student@192.168.141.95:/home/student/itcast.git git remote add 新名字(类似别名) 老地址 (自己起个文件名) git remote (可以查看已添加的远程主机) git remote show (主机名称”可以查看远程主机的信息) ##生成密钥 ssh-keygen -t rsa (后面一路回车 当前用户会生成一个.ssh文件夹) id_rsa (密钥) id_rsa.pu (共钥) ##git pages 网页托管
标签管理
创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上:
$ git branch* dev master$ git checkout masterSwitched to branch 'master'
然后,敲命令git tag <name>
就可以打一个新标签:
$ git tag v1.0
可以用命令git tag
查看所有标签:
$ git tagv1.0
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:
$ git log --pretty=oneline --abbrev-commit12a631b (HEAD -> master, tag: v1.0, origin/master) merged bug fix 1014c805e2 fix bug 101e1e9c68 merge with no-fff52c633 add mergecf810e4 conflict fixed5dc6824 & simple14096d0 AND simpleb17d20e branch testd46f35e remove test.txtb84166e add test.txt519219b git tracks changese43a48b understand how stage works1094adb append GPLe475afc add distributedeaadf4e wrote a readme file
比方说要对add merge
这次提交打标签,它对应的commit id是f52c633
,敲入命令:
$ git tag v0.9 f52c633
再用命令git tag
查看标签:
$ git tagv0.9v1.0
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>
查看标签信息:
$ git show v0.9commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9)Author: Michael LiaoDate: Fri May 18 21:56:54 2018 +0800 add mergediff --git a/readme.txt b/readme.txt...
可以看到,v0.9
确实打在add merge
这次提交上。
还可以创建带有说明的标签,用-a
指定标签名,-m
指定说明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
用命令git show <tagname>
可以看到说明文字:
$ git show v0.1tag v0.1Tagger: Michael LiaoDate: Fri May 18 22:48:43 2018 +0800version 0.1 releasedcommit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (tag: v0.1)Author: Michael Liao Date: Fri May 18 21:06:15 2018 +0800 append GPLdiff --git a/readme.txt b/readme.txt...
如果标签打错了,也可以删除:
$ git tag -d v0.1Deleted tag 'v0.1' (was f15b0dd)
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin <tagname>
:
$ git push origin v1.0Total 0 (delta 0), reused 0 (delta 0)To github.com:michaelliao/learngit.git * [new tag] v1.0 -> v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
$ git push origin --tagsTotal 0 (delta 0), reused 0 (delta 0)To github.com:michaelliao/learngit.git * [new tag] v0.9 -> v0.9
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9Deleted tag 'v0.9' (was f52c633)
然后,从远程删除。删除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9To github.com:michaelliao/learngit.git - [deleted] v0.9
要看看是否真的从远程库删除了标签,可以登陆GitHub查看。
操作标签
如果标签打错了,也可以删除:
$ git tag -d v0.1Deleted tag 'v0.1' (was f15b0dd)
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin <tagname>
:
$ git push origin v1.0Total 0 (delta 0), reused 0 (delta 0) To github.com:michaelliao/learngit.git * [new tag] v1.0 -> v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
$ git push origin --tagsTotal 0 (delta 0), reused 0 (delta 0) To github.com:michaelliao/learngit.git * [new tag] v0.9 -> v0.9
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9Deleted tag 'v0.9' (was f52c633)
然后,从远程删除。删除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9To github.com:michaelliao/learngit.git - [deleted] v0.9
要看看是否真的从远程库删除了标签,可以登陆GitHub查看。
小结
-
命令
git push origin <tagname>
可以推送一个本地标签; -
命令
git push origin --tags
可以推送全部未推送过的本地标签; -
命令
git tag -d <tagname>
可以删除一个本地标签; -
命令
git push origin :refs/tags/<tagname>
可以删除一个远程标签。