Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
1、GIT和SVN的区别 :
-
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
-
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
-
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
-
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
-
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
2、Git 命令
- git init - 初始化仓库。
- git add . - 添加文件到暂存区。
- git commit - 将暂存区内容添加到仓库中。
- git clone - 拷贝一份远程仓库,也就是下载一个项目
- git status - 查看仓库当前的状态,显示有变更的文件
- git diff - 比较文件的不同,即暂存区和工作区的差异
- git reset - 回退版本
- git rm - 删除工作区文件
- git mv - 移动或重命名工作区文件
- git log - 查看历史提交记录
- git blame <file> - 以列表形式查看指定文件的历史修改记录
- git remote - 远程仓库操作
- git fetch - 从远程获取代码库
- git pull - 下载远程代码并合并
- git push - 上传远程代码并合并
3、Git 分支管理
git branch (branchname) 创建分支命令 git checkout (branchname)切换分支命令 git merge 合并分支命令 git branch 列出分支基本命令 git branch -d (branchname)删除分支命令
4、添加远程库
git remote add [shortname] [url] $ ssh-keygen -t rsa -C "youremail@example.com" 命令生成 SSH Key
5、git基本命令ls、cat、mv、touch
.ls-->命令含义:List directory contents,用来显示目录或具体文件列表。
-
ls -1:每行列出一个文件,即以单列形式列出。
-
ls -a:列出所有文件,包括隐藏文件。
-
ls -la:所有文件的长格式列表(含权限、所有权、大小和修改日期)。
-
ls -lh:使用人可读单位(KB,MB,GB)显示大小的长格式列表。
-
ls -lS:按大小排序的长格式列表(降序)。
-
ls -ltr:按大小排序的长格式列表(降序)。
.cat-->命令含义:Print and concatenate files,打印、合并文件。
-
cat file:将文件内容打印显示。
-
cat file1 file2> target_file:将多个文件合并到目标文件中。
-
cat file1 file2 >> target_file:将几个文件附加到目标文件中。
.mv -->命令含义:Move or rename files and directories,移动或重命名文件和目录。
-
mv file1.txt file2.txt:将file1文本重命名为file2。
-
mv file1.txt file2:讲file1文本移动到file2目录。
.touch -->命令含义:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的空白文件。
-
touch file:修改file的时间属性,如果file不存在,则将创建一个新的空白文件。
6、命令行查询网站explainshell.com使用说明