说明
本篇文章是看Pro Git一书按照自己的思维模式对Git命令进行了分类。
一、Git配置
配置Git用户名
git config --global user.name ""
配置Git邮箱
git config --global user.email ""
设置文本编译器
git config --global core.editor
git config --global core.editor "'D:\Notepad++\notepad++.exe' -multiInst -notabbar -nosession -noPlugin '$*'"
差异分析工具
git config --global merge.tool vimdiff
设置git log的提交时间格式
git config --global log.date iso
查看配置信息
git config --list
git config --list --show-origin
查询某项配置设置的值
git config user.email
git config --list --show-origin|grep "user.email"
注意事项:
参数–system、–global和–local依次为针对所有用户的配置、针对当前用户的配置、针对当前git仓库的配置,
如果存在同样的配置优先级从高低为:–local、–global、–system。
二、创建Git仓库的两种方式
初始化当前目录为Git仓库
git init
克隆远程仓库到本地
git clone git@server-name:path/repo-name.git
不使用默认的origin仓库名称来跟着远程仓库,而是使用,其实就是给远程开发起个别名。
git clone git@server-name:path/repo-name.git -o <name>
获取远程服务器上的裸仓库,即复制远程仓库的.git目录以及其中的文件到本地
git clone git@server-name:path/repo-name.git --bare
三、本地仓库与远程仓库
将远程仓库的引用添加到本地仓库中,origin为远程仓库别名
git remote add origin git@server-name:path/repo-name.git
查看本地仓库添加的远程库引用名称
git remote
查看本地仓库添加的远程库引用名称和对应远程仓库URL
git remote -v
查看远程分支详细信息(远程分支列表以及状态、本地分支pull和push对应的远程分支等)
git remote show [远程仓库引用名称]
删除本地仓库中的远程仓库引用名称
git remote rm [远程仓库引用名称]
重命名远程仓库引用名称。注意:之前origin/master访问远程分支,修改后origin-test/master访问远程分支。
git remote rename [原有远程仓库引用名称] [新的远程仓库引用名称]
四、提交
添加文件到暂存区(包括未跟踪文件和已跟踪文件)
git add <file-name>
添加文件到暂存区(只包括已跟踪文件)
git add -u <file-name>
将暂存区中指定文件从暂存区提交到本地Git仓库
git commit -m "commit desc" <file-name>
将暂存区中所有文件从暂存区提交到本地Git仓库
git commit
*跳过暂存区直接提交到本地仓库,相当于git add ;git commit.。注意此命令不会将未跟踪(Untracked files)的文件提交到本地仓库中。
git commit -a -m "commit desc"等同于git commit -am "commit desc"
查看本地Git仓库状态
git status
五、对比
工作区和暂存区的文件不同对比
git diff
暂存区和本地Git仓库文件最后一次提交不同对比
git diff --cached <file-name>
等同于 git diff --staged <file-name>
工作区和本地Git仓库文件最后一次提交不同对比
git diff HEAD <file-name>
比较当branch-a和branch-b两个分支最新一次提交内容的不同,其实比较的是两个提交的差异,应为branch-a和branch-b都是指向最新的一次提交,也可以根据需要指定SHA-1来比较两次提交差异
git diff <branch-a> <branch-b>
查可能存在的空白字符问题
git diff --check <file-name>
过滤掉空白字符的差异
git diff -b <file-name>
查看当前Git可使用以及支持哪些diff插件
git difftool --tool-help
使用指定的diff插件比较文件差异
git difftool --tool=vi