Git&Linux
一、Git
1.1 什么是git?
Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理各种信息。
Git和VCS,Subversion 或 Perforce这些版本控制工具使用起来很像但是他们在对信息存储和认知方式有很大差异:
①记录快照,非差异比较:其它版本控制工具是记录累积的差异,是基于差异控制;而Git是在提交或保存项目状态时,对当前文件都创建一个快照并保存快照索引,如果文件没有修改就不会重新存储文件,只保留之间文件存储地址。
②Git所有操作都是本地操作。
③Git保存完整性:git在提交时利用哈希散列来进行校验和,再以校验和来引用,这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。
④Git一般只添加数据:意味你很难使用 Git 从数据库中删除数据,也就是说 Git 几乎不会执行任何可能导致文件不可恢复的操作。
1.2三种状态?
已提交(committed)、已修改(modified) 和 已暂存(staged)
- 已修改表示修改了文件,但还没保存到数据库中
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
- 已提交表示数据已经安全地保存在本地数据库中
1.3三种阶段?
工作区、暂存区、Git 仓库。
1.4git基础命令?
- 将本地还未进行版本控制的目录转化成git仓库
步骤:进入你要转化的目录 ===》执行初始化命令 git init - 从服务器克隆一个git仓库
步骤:git clone git远程仓库地址’
如果你想拉取远程仓库时自定义自己本地库名字
步骤:git clone git远程仓库地址 自定义库名 - 设置用户签名:git config --global user.name 用户名
- 设置用户邮箱:git config --global user.email 邮箱
- 详细状态:git status
- 简短信息:git status -s
- 提交指定文件:git commit -m “提交信息” 文件名
- 提交全部文件:git commit -m ”提交信息“
- 跳过使用暂存区:git commit -a -m “提交信息” 文件名
- 查看版本信息:git reflog
- 查看版本详细信息:git log
- 查看远程仓库:git remote
- 查看详细仓库信息:git remote -v
- 从远程仓库拉取和抓取:git pull (默认拉取当前分支)
- 推送文件到远程仓库:git push
- 查看打过的标签版本:git tag
- 轻量标签:git tag v1.0
- 附注标签:git tag -a 标签版本 -m ”标签附注消息“ 例:git tag -a v1.0 -m ”测试1.0“
- 后期打标签:git tag v1.0 提交记录的hash值
- 创建分支:git branch 分支名
- 查看分支:git branch -v
- 切换分支:git checkout 分支名 (注意这个切换分支后会丢失更改的内容)
- 删除分支:git branch -d 分支名
- 把指定分支合并到当前分支:git merge 分支名
- 当你想切换另一分支但不想提交可以使用贮藏命令:git stash
- 查看贮藏信息:git stash list
- 想应用指定贮藏:git stash apply 贮藏名字
- 移除贮藏:git stash drop 要移除贮藏的名字
- 保持一个线性、清晰的提交历史,避免不必要的合并提交:git rebase(谨慎使用,很多公司禁掉此功能使用merge)
- 回滚提交:git revert [提交的hash值]
1.5解决冲突?
在工作中协作开发很容易遇到冲突情况,遵守一下几点可减少些冲突:
- 在同一分支开发时,开发前拉取最新代码,提交之前再拉取一下。
- 不在同一分支开发合并时出现冲突只能手动更改并和同事确定代码。
二、Linux
1.常用命令
- 绝对路径用什么符号表示:如/etc/init.d
- 当前目录、上层目录:./ 、…/
- 主目录:~/
- 切换目录:cd
- 查看当前进程:ps
- 执行退出:exit
- 查看当前路径:pwd
- 清屏:clear
- 退出当前命令:ctrl+c 彻底退出
- 执行睡眠 :ctrl+z 挂起当前进程 fg 恢复后台
- ls 执行的功能:列出指定目录中的目录,以及文件
- 哪些参数以及区别:a 所有文件 l 详细信息,包括大小字节数,可读可写可执行的权限等
- 创建目录:mkdir
- 创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件
- 文件权限修改:chmod
格式如下:chmodu+xfile 给 file 的属主增加执行权限 chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限chmodu=rwx,g=rx,o=xfile 上例的另一种形式 chmod =r file 为所有用户分配读权限chmod 444 file 同上例 chmod a-wx,a+r file 同上例$ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限 - vi 文件名 #编辑方式查看,可修改
- cat 文件名 #显示全部文件内容
- more 文件名 #分页显示文件内容
- less 文件名 #与 more 相似,更好的是可以往前翻页
- tail 文件名 #仅查看尾部,还可以指定行数
- head 文件名 #仅查看头部,还可以指定行数
- 移动命令:mv
- 复制命令 cp -r
- 删除命令: rm -r
- grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep [查询字段] [文件名]
- 利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
ps -ef (system v 输出) ps -aux bsd 格式输出 ps -ef | grep pid - 查看后台任务 job -l
- 搜索文件用什么命令? 格式是怎么样的?
find <指定目录> <指定条件> <指定动作>
whereis 加参数与文件名
locate 只加文件名
find 直接搜索磁盘,较慢。
find / -name “string*” - 使用什么命令查看网络是否连通:netstat
- 使用什么命令查看 ip 地址及接口信息:ifconfig