其实Git命令相对于对于手工操作并不方便,只是因为TortoiseGit存在的原因。但是对于需要将这些拉取以及操作为自动化脚本的时候,这些指令如果遗忘了,就很不容易想起来。因此,这里进行个人汇总,以给我自己提供参考帮助,后期再运用的时候,如果有需要的化,我也会不断的更新这部分的内容。
Git配置
$ git config --list //显示当前Git配置
$ git config -e <--global> //编辑Git配置文件
$ git config <--global> user.name "[name]" //修改当前用户的用户名
$ git config <--global> user.email"[email]" //修改当前用户的邮箱
代码库操作
$ git init //在当前目录创建一个Git代码库
$ git init <project-name> //新建一个目录,并将其初始化为Git代码库
$ git clone <url> //下载下来一个项目以及它的整个代码历史到当前文件夹下
分支操作
$ git branch // 查看当前本地分支
$ git branch -r // 查看所有远程分支
$ git branch -a // 查看所有当前分支以及远程分支
$ git branch <name> // 创建分支【但是现在还在当前分支】
$ git chackout <name> //切换分支
$ git checkout -b <name> //创建并切换分支
$ git checkout - //切换到上一分支
$ git cherry-pick <commit> //选择一个提交,合并进当前分支中
$ git merge <name> //合并到某分支到当前分支
$ git branch -d <name> //删除分支
$ git push --delete origin <name> //删除远程分支
代码的提交
该类型的操作所提交的代码是将代码提交到本地仓库,而并没有提交到远程仓库
$ git commit -m <message> //提交暂存区到仓库区域 【仅仅是本地仓库,并不代表提交到远程仓库了】
$ git commit <file1> <file2> ... -m <message> //将指定文件的代码提交到仓库去【本地仓库非远程仓库】
$ git commit -v //提交代码时显示所有不同的信息
远程同步
该类型的操作是本地仓库的代码和远程仓库的代码互相互动
$ git remote update //更新远程仓储
$ git fetch <remote> //下载所有仓库变动
$ git remote -v //显示所有远程仓库
$ git remote show <remote> //显示某个远程仓库的信息
$ git remote add <shortname> <url> //添加一个远程仓库,并命名
$ git pull <remote> <branch> //取回远程仓库的变化,并于本地分支合并
$ git push <remote> <branch> //上传本地指定分支到远程仓库
$ git push <remote> --force //强行推送本地分支到远程仓库,即便两者有冲突
$ git push <remote> --all //推送所有分支到远程仓库
文件操作
此操作针对的是本地仓库,而并非远程仓库
$ git add <file1> <file2> ... //添加指定文件到缓存区域中
$ git add <dir> //添加指定目录以及子目录到缓存区域中
$ git add . //添加当前目录的所有文件到缓存区中
$ git rm <file1> <file2> ... //删除工作区域中的指定文件
$ git mv <file-original> <file-renamed> //文件名改名并将文件提交到缓存之中
代码标签
$ git tag //列出代码中的所有标签
$ git tag <tag> //基于当前提交新建一个标签
$ git tag <tag> <commit> //在指定的提交上创建一个标签
$ git tag -d <tag> //删除本地标签
$ git push origin :refs/tags/<tagName> //删除远程标签
$ git show <tag> //查看标签信息
$ git push <remote> <tag> //提交所有标签到远程仓库
$ git push <remote> --tags //提交所有的本地标签到远程仓库
$ git checkout -b <branch> <tag> //新建一个分支,并指向某一个标签
查看LOG
$ git status //显示有变更的文件
$ git log //显示当前分支的版本
$ git log --stat //显示commit历史以及每次commt发生变更的文件
$ git log -S <keyword> //依据关键字搜索历史提交记录
$ git log <tag> HEAD --pretty=format:%s //显示某个commit之后所有变动,每一个commit都占用一行
$ git log --follow <file> //显示某文件的历史版本
$ git log -p <file> //显示指定文件相关的所有的diff信息
$ git log -3 --pretty --oneline //显示过去3次的提交记录
$ git shortlog -sn //显示所有提交过代码的人,按照提交次序排序
$ git blame <file> //显示指定文件某个人在某个时候修改过的记录
$ git diff //显示缓存区和当前工作区域差异
$ git diff --shortstat "@{0 day ago}" //显示这一天所提交的代码行数
$ git show --name-only <commit> //显示某次提交变化的文件
代码撤销操作
此操作是将缓存区的代码恢复到当前文件的操作
$ git checkout <file> //恢复缓存区的代码到当前编译的文件
$ git checkout <commit> <file> //针对某次提交到仓库的操作从缓存区恢复的操作
$ git checkout . //恢复缓存区的全部代码到当前所有文件
$ git reset <file> //重置缓存区的指定文件,与上次提交保持一致,当前文件不变