注:SVN和GIT的差异,SVN在每级目录下都有一个.svn/的控制信息目录,而git只在顶级目录有一个.git/控制信息目录。
#----------------------------------------------------------------------------------------------------------------------------------------------------
# git简单介绍 【2020年6月8日23:12:12】
#----------------------------------------------------------------------------------------------------------------------------------------------------
0、git / git help --all
#查看git支持的常用子命令列表以及简单描述,git help --all可以查看完整的自命令列表
1、git --version
#查看git版本
2、git --help subcommand / git subcommand --help / git help subcommand / git subcommand help
#以上命令都可以用来查看git子命令的帮助手册(安装git时包含的手册组件sudo apt-get install git-doc)
3、git commit -m "message text" / git commit --message="message text"
#提交并使用给定的"message text"作为提交消息。-m 和 --message 作用一样,一个是选项加参数;另一个是选项等于参数。
#短选项更常用一些。如果给定多个-m选项,它们的值将作为单独的段落连接起来。-m选项与-c、-c和-F互斥。
4、git <command> --“XXXX”
#‘--’裸双破折号,用来分离一系列参数
#----------------------------------------------------------------------------------------------------------------------------------------------------
# git快速入门【2020年6月10日23:19:09】
#----------------------------------------------------------------------------------------------------------------------------------------------------
1、本地仓库(以下所有目录、文件均在 ROOT=/F/gitLearn/下):
创建一个本地目录/F/gitLearn/,在gitLearn目录下创建编辑新的目录和文件,然后在/gitLearn/下执行:
git init
#将$ROOT目录作为一个git仓库,$ROOT目录下会产生一个.git/目录,
#用来存储相关版本控制信息,该目录只在一级目录$ROOT下存在,区别于SVN会在每一级目录下都有一个.svn/
git status
#查看当前版本库下的状态(会显示有新的目录和文件需要被add、rm、commit)
git add *
#将$ROOT目录下创建的所有文件和目录(不包括.git/、.ingnore等控制文件/目录)添加到.git/对应的版本库
git commit -m "xxxx"
#将add到中间状态暂存的修改/新建提交到仓库
git log
#查看commit的提交历史日志
#以上操作涉及以下几个步骤,可以观察其中命令执行的结果变化
mkdir new_dir / touch new_file -> git init -> git status -> git add -> git status -> git commit -> git status -> git log
#当git add index.html 之后对 index.html 进行了修改,下次commit -a -m "xxxx" 即可,不需要重复add,
#或者重新git add index.html 然后git commmit -m "xxxx"也可以,没有什么特殊要求,由于一般除了修改可能会有新增文件
#所以每次commit之前add一把,可能会更加方便,在开发初期,文件新增和修改都比较多时,也更加常用
git show [log SHA code]
#用于查看指定提交对象的提交内容,如果未指定[log SHA code]选项,则显示最近一次提交的相关信息,如下所示:
#show-branch --more=n,用于指定额外的10个版本([master^] 为第一次提交)
#------------------------------------------------------------------------------------------------------------
# $ git show edc7a056b5f91aa5393e56b2e2dbc1a9d5968a22
# commit edc7a056b5f91aa5393e56b2e2dbc1a9d5968a22
# Author: ApollonKangGitHub <mailbox_krj@163.com>
# Date: Mon Jun 8 23:30:49 2020 +0800
#
# initialized empty Git repository in .git/
#
# diff --git a/index.html b/index.html
# new file mode 100644
# index 0000000..a1fffb3
# --- /dev/null
# +++ b/index.html
# @@ -0,0 +1 @@
#
# $ git show-branch --more=10
# [master] second commit don't need add file again
# [master^] initialized empty Git repository in .git/
#------------------------------------------------------------------------------------------------------------
git diff <sha1_1> <sha1_2>
#查看指定的两次提交之间的差异
git add <a.txt> -> git commit
#添加到库并提交添加操作
git rm <a.txt> -> git commit
#从库中删除并提交删除操作
git mv <a.txt> <b.txt> -> git commit
#对库中文件改名并提交修改(等价于:mv a.txt b.txt -> git rm a.txt -> git add b.txt -> git commit)
git clone <lib_source> <lib_salve>
#本地版本库克隆
git clone <rmt_URL> [dst_name]
#远端版本库克隆
#克隆一个版本库
#------------------------------------------------------------------------------------------------------------
# $ git clone public_html my_html
# Cloning into 'my_html'...
# done.
#
# my_html 有着克隆对象的完整 git log 历史
#------------------------------------------------------------------------------------------------------------
#git配置文件
# --global配置的是基于用户的全局 "~/.gitconfig" 的修改
# 而不加--global是基于版本库 ".git/config" 的配置)
# --system 则是配置系统全局的 "/etc/gitconfig" 文件
# 三种类型的配置文件如下:
cat /etc/gitconfig
cat .git/config
cat ~/.gitconfig
#配置相关命令示例
git config user.name "ApollonKangGitHub"
git config core.filemode false
git config --global user.name "ApollonKangGitHub"
git config --global user.email "mailbox_krj@163.com"
git config --system user.name "ApollonKangGitHub"
git config --system user.email "mailbox_krj@163.com"
#显示配置
git config -l
#删除配置示例(修改配置的话,直接将相关配置直接重新设置一遍)
git config --unset [--global | --system] user.name
#配置别名(为一个比较长的带选项的命令配置别名)
git config [--global | --system] alias.<new_name> "old name and options"
#git config --global alias.show-graph "log --graph --abbrev-commit --pretty=oneline"
#该命令配置了"log --graph --abbrev-commit --pretty=oneline"的别名为"show-graph"
#当执行"git show-graph"时,即执行"git log --graph --abbrev-commit --pretty=oneline"