Linux

文件与目录

cd命令:

$ cd [path] //path为路径名称,这只是常规语法

1

详细用法如下:

$ cd /d //进入d盘

$ cd d: //进入d盘

$ cd D: //进入d盘

$ cd /D //进入d盘

$ cd ..   //返回上一级目录

$ cd ../  //返回上一级目录

$ cd ../../  //返回上两级目录

$ cd .    //切换到当前目录,通常没有任何反应

$ cd ./   //切换到当前目录,通常没有任何反应

$ cd      //不要以为看错了,确实就只有一个“cd”,它表示切换到个人主目录(类似于切换到window的桌面,但又不是桌面)

$ cd -   //返回上次访问目录(即倒退到上一次目录位置)

$ cd /d/loushengyue/study  //进入d盘中的loushengyue目录下的study目录

ls命令:

$ ls  //查看当前目录中的文件夹及文件

$ ls -l  //查看当前目录下的文件和文件夹的详细资料

$ ls -a  //查看当前目录中的文件夹及文件(包括隐藏文件)

$ ls -la //查看当前目录下的文件和文件夹的详细资料(包括隐藏文件)

pwd命令:

$ pwd  //显示当前目录路径

1

rm命令:

$ rm test.js -rf  //删除当前目录下的 test.js 文件

$ rm ./test.html -rf //删除当前目录下的 test.html 文件

$ rm ../test.css -rf //删除上一级目录下的 test.css 文件

$ rm test/ -rf //删除当前目录下的 test 文件夹

$ rm tst/tt.js -rf //删除 tst 目录下的 tt.js 文件

mkdir命令:

$ mkdir ./test //在当前目录下创建 test 文件夹

$ mkdir ../test //在上一级目录下创建 test 文件夹

$ mkdir ./test/son //在当前目录下的 test 目录下创建 son 文件夹

$ mkdir ./tst1 ./tst2 //在当前目录下创建 tst1 和 tst2 文件夹

mv命令:

$ mv dir new_dir //当前目录下没有 new_dir 时表示将 dir 移动到当前目录下并重命名为 new_dir, 当前目录下有 new_dir 文件夹是表示将 dir 移动到 new_dir 目录中

cp命令:

$ cp test.js newtest.js //复制当前目录下的 test.js 到当前目录下并命名为 newtest.js

$ cp ../test.html ./ //复制上一级目录下的 test.html 到当前目录下(注意这里是./,没有重命名)

touch命令:

$ touch ./test.js //在当前目录下创建一个名为 test.js 的文件

Git

Git命令行基本操作

0. 安装Git

网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用Git GUI或者GITK。

1. Git基本配置

git config可以配置git的参数,可以使用git config --list查看已经配置的git参数。其中有三个级别的保存位置,--system、--global、--local,分别表示所有用户(本系统)、当前用户(全局)、本地配置(当前目录),默认使用--local。

配置用户名及邮箱

在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。

git config --global user.name "Tocy"

git config --global user.email zyvj@qq.com

其他配置

如果在windows下建议还是配置下默认文本编辑器core.editor和差异分析工具merge.tool。

2. 创建Git仓库

可以直接调用git init初始化当前目录,即创建Git仓库。

3. 获得Git仓库

如果需要克隆远程仓库,可以使用git clone,比如:

git clone https://git.oschina.net/Tocy/SampleCode.git

4. 提交更新

在windows下的Git GUI中,提交很简单,右键-TortoiseGit-Commit。那么命令行下需要怎么处理?
Git中每个文件都有三种状态:committed、staged、modified。它们之间关系如下:

commit <-- stage <-- modify
commit --> --- --modify

我们获取的Git仓库中的所有文件都是committed状态,如果你在本地修改了文件a,a的状态就变成modified的;如果使用git add a,a的状态变成staged;如果使用git commit,a的状态就变成commited。这种状态变化也说明复制代码是很方便的,但是提交更新请慎重。
当然还有一种文件状态,未跟踪状态(unversioned/untracked),通过使用git add可以把未跟踪状态变更为staged;通过git rm可以将staged或者committed状态变为未跟踪状态。

git status

通常提交前先检查下修改了什么内容,当前Git目录下各文件的状态。

$ git status

On branch master

Initial commit

Untracked files:

(use "git add <file>..." to include in what will be committed)

Readme.md

nothing added to commit but untracked files present (use "git add" to track)

git add

git add可以添加文件或者目录,也可以使用通配符。比如:

git add Readme.md    # add file only

git add *.cpp        # add all cpp files

git add /home/code/  # add all files in /home/code

git diff

git diff可以查看当前目录的所有修改。
提交之前,还是单独确认下处于staged状态的文件有哪些,并保证修改正确。在实际应用中,可能还需要使用git diff导出PATCH做代码走读。
可以使用git diff --staged或git diff --cached查看staged与上次提交快照之间的区别。

git commit

提交前需慎重。直接调用git commit会弹出编辑器,输入提交日志(如果是多行日志,建议使用)。
针对单行日志提交的情况,可以使用如下命令:git commit -m "add readme"。
还有一种快捷的提交方式,直接跳过stage缓存区,直接提交当前目录下的所有修改git commit -a(使用这个命令前建议确认下当前目录的修改是否正确、必须)。

git rm

git rm会把文件从当前目录删除(不会保存删除的文件)。如果需要从Git仓库中删除,但保留在当前工作目录中,亦即从跟踪清单中删除,可以使用git rm --cached readme.md。

5. 提交历史查看

可以使用git log查看当前工程的所有提交的日志。

git log --stat      # 仅显示摘要选项

git log --pretty=oneline        # 定制记录格式

git log --graph     # 图像化分支和版本更新

6. 撤销更新

7. 远程仓库

可以使用git remote查看当前的远程库。
git remote -v可以显示对应的克隆地址。(对于多个远程仓库很有用)

添加远程仓库

git remote add [short_name] [url]可以添加新的远程仓库。

从远程仓库抓取数据

git fetch [remote-name]可以从远程仓库抓取数据到本地。
也可以使用git pull

推送数据到远程仓库

git push [remote_name] [branch_name]
默认使用origin和master。

查看远程仓库信息

git remote show origin

远程仓库的删除和重命名

git remote rename [old_name] [new_name]
git remote rm [remote_name]

8. 打Tags

可使用git tag显示当前库中的标签。

添加标签(含附注)

git tag -a v0.1 -m "my version 0.1"
使用如下命令查看Tag日志信息(指定对应标签的名字)
git show v0.1
也可使用SHA-1的提交表示创建tag:
git tag -a v0.2 [SHA-1] -m "my version 0.2"

分享标签

默认的,git push不会推送标签信息到远程仓库,需要通过命令显式推送。
git push origin v0.1
如果需要推送所有标签,使用
git push origin --tags

9. Git分支

git分支是轻量级的,速度很快,仅记录索引信息。

显示所有分支

使用git branch可显示当前所有分支。
可以使用--merged和--no-merged查看已经合并、未合并的分支。

创建及切换分支

可以使用下面命令直接切换并创建分支
git checkout -b testing
等价于

$ git branch testing    # 创建testing 分支

$ git checkout testing  # 切换到testing分支

注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。

分支合并

将hotfix分支合并到master(主分支)上,需要通过下面命令:

$ git checkout master

$ git merge hotfix

合并之后可以使用git branch -d hotfix删除分支。
如果合并时存在冲突,需要手工修改。

 

Linux+Git命令的更多相关文章

  1. Linux 文件管理命令语法、参数、实例全汇总(一)

    命令:cat   cat 命令用于连接文件并打印到标准输出设备上. 使用权限 所有使用者 语法格式 cat [-AbeEnstTuv] [--help] [--version] fileName 参数 ...

  2. ***Linux下使用git命令及github项目

    在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen  ##一直默认就可以了 3.将公钥加入到Github账户 ...

  3. linux 环境下git 命令小结

    转载自:http://blog.chinaunix.net/uid-28241959-id-3880025.html 本地建立仓库 先创建个文件夹,仓库的地点: mkdir cangkumkdir C ...

  4. 开发常用Git/Linux/idea命令快捷键总结(持续更新)

    在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率.本文记录了我在平时积累的常用命令,分享给大家. git命令 基本命令 set LESSCHARSET=utf-8 --idea T ...

  5. Linux查找命令:grep,awk,sed

    grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...

  6. Git命令行(转用于学习和记录)

    Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...

  7. Linux常用命令集合

    常用的Linux命令,备忘 1 pwd 显示当前目录 命令格式: pwd [选项] 2 cd 更换目录 命令格式: cd [目录名] 例: 3 ls 显示当前目录内容 命令格式: ls [选项] [目 ...

  8. 几个最常用的git命令

    之前在Windows下一直用可视化的tortoise git,在Linux下最好是用命令行,以下是常用的git命令: git status:显示当前已修改的文件,新增的文件 git checkout  ...

  9. Linux 常见命令说明

    目前由于自己接触到的是 windows 的操作系统,所以会经常使用 git bash 来提交代码到 github上. git bash 是 windows 下模拟 Linux 的命令行工具. 在此总结 ...

随机推荐

  1. “全栈2019”Java第八十一章:外部类能否访问嵌套接口里的成员?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. 洛谷P3783 [SDOI2017]天才黑客(前后缀优化建图+虚树+最短路)

    题面 传送门 题解 去看\(shadowice\)巨巨写得前后缀优化建图吧 话说我似乎连线段树优化建图的做法都不会 //minamoto #include<bits/stdc++.h> # ...

  3. CentOS 下安装 Hexo 博客

    前言: 之前一直使用Wordpress架构作为博客网站架构,但是现在频频爆出漏洞.实在是不敢用也不想用了,然后群里面有小伙伴用的是 Github 搭建 Hexo 架构博客.就写了这个教程,给自己做个参 ...

  4. PHP中SimpleXMLElement对象字符编码

    最近在使用SimpleXMLElement来生成和解析XML. 由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题. 后来发现,XML内部的编码与其头 ...

  5. 23.each和map函数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 纯css使div垂直居中,div垂直,div居中的方法

    首先编写一个简单的html代码,设置一个父div类名为boxFather,再设置一个子div类名为box1.html代码如下: <div class="boxFather"& ...

  7. 进阶篇:4.2)DFA设计指南:优化装配工序

    本章目的:针对每一个装配工序,运用DFA进行优化. 1.前言 工序的优化在产品的精简之后. 这个是作者的实际做完DFA后得出的结论.原因倒是很简单,一个精密的产品,哪怕只是优化了一个零件,对整体的装配 ...

  8. SQL的CharIndex用法

    和C#一样判断一个字符串中是否包含另一个字符串举例1:select charindex('test','This Test is test!!')->返回 6 (空格也算一个 下标从1开始)2: ...

  9. Java Web基础——Controller+Service +Dao三层的功能划分

    转自:https://www.cnblogs.com/cielosun/articles/5752272.html 1. Controller/Service/DAO简介: Controller是管理 ...

  10. this和target目标对象的区别

    在事件函数中 event.target和this是一样的效果吗? this是调用方法的对象, evemt.target事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素.文档或窗口. ...