一. git config —— 查看 Git 的相关参数
Git 一共有3个配置文件:
- 仓库级的配置文件:在仓库的 .git/.gitconfig,该配置文件只对所在的仓库有效。
- 全局配置文件:
(1) Windows 系统在 C:\Users<用户名>.gitconfig
(2)Mac 系统在 ~/.gitconfig - 系统级的配置文件:
(1)在 Git 的安装目录下的 etc 文件夹中的 gitconfig。
(2)Mac 系统下安装目录在 /usr/local/git
1.1 查看配置信息
- 查看仓库级的配置信息
git config --local -l
- 查看全局级的配置信息
git config --global -l
- 查看系统级的配置信息
git config --system -l
1.2 查看当前生效的配置信息
git config -l
2. 创建仓库命令
2.1 git init —— 初始化仓库
在项目的目录中创建一个 Git 仓库。
git init
2.2 git clone —— 从远程仓库克隆一个版本库到本地
也就是下载一个项目。
git clone [项目的url]
3. 提交与修改
3.1 git add —— 添加文件到仓库
- 添加一个或多个文件到暂存区
git add [文件1] [文件2] ...
- 添加指定目录到暂存区,包括子目录
git add [目录名]
- 添加当前目录下的所有文件到暂存区
git add .
3.2 git status —— 查看仓库当前的状态
- 查看本地仓库的状态,显示有变更的文件
git status
- 以简短模式查看本地仓库的状态(A 新增,M 修改,D 删除,?? 未添加到Git中)
git status -s
3.3 git diff —— 比较文件的不同
即暂存区和工作区的差异。
- 显示暂存区和工作区的差异
git diff
当工作区有改动,临时区为空,diff的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,临时区不为空,diff对比的是“工作区与暂存区的共同文件”。 - 查看已缓存的改动
git diff --cached
或git diff --staged
显示暂存区(已 add 但未 commit 文件)和最后一次 commit(HEAD) 之间的所有不相同文件的增删改 ( git diff --cached 和 git diff –staged 相同作用) - 查看已缓存的与未缓存的所有改动
git diff HEAD
显示工作目录(已track但未add文件)和暂存区(已add但未commit文件)与最后一次commit之间的的所有不相同文件的增删改 - 显示摘要而非整个
git diff --stat
3.4 git commit —— 提交暂存区到本地仓库
将暂存区内容添加到本地仓库中。
git commit -m "备注信息"
四. 查看日志
- 查看历史提交记录
git log
- 查看历史记录的简洁的版本,此项目的开发历史
git log --oneline
- 查看历史中什么时候出现了分支、合并,开启拓扑图选项
git log --graph
- 逆向显示所有日志
git log --reverse --oneline
- 查找指定用户的提交日志
git log --author=[用户名] --oneline
例:git log --author=zhangsan@163.com --oneline
- 查找指定日期的提交日志
可以执行几个选项:–since 和 --before,也可以用 --until 和 --after - 查看指定文件的修改记录
git blame
五. 远程仓库操作
5.1 git remote —— 远程仓库操作
- 列出已经存在的远程仓库
git remote
- 载入远程仓库,然后查看信息,origin 为远程地址的别名。
git remote -v
或git remote --verbose
- 显示某个远程仓库的信息
git remote show [远程仓库地址]
例:git remote show https://github.com/zhangsan/test
- 删除远程仓库
git remote rm name
5.2 git fetch —— 从远程获取代码库
- 从远端仓库提取数据并尝试合并到当前分支
git merge
- 配置好了一个远程仓库,并且你想要提取更新的数据
(1) 首先执行git fetch
获取数据,
(2) 然后执行git merge
将服务器上的任何更新(假设有人这时候推送到服务器了)合并到当前分支。
5.3 git pull —— 下载远程代码并合并到本地
- 从远程获取代码并合并本地的版本,更新操作
git pull
git pull origin
- 将远程主机 origin 的 master 分支拉取过来,与本地的 home 分支合并
git pull origin master:home
如果远程分支是与当前分支合并,则冒号后面的部分可以省略
git pull origin master
5.4 git push —— 上传远程代码并合并
- 如果远程分支中存在本次需要提交的分支,从本地的分支版本上传到远程并合并
git push
- 如果远程分支中不存在本次需要提交的分支,将本地的 home 分支推送到 origin 主机的 home 分支
git push origin home
或
git push -u origin home
- 如果本地版本与远程版本有差异,但又要强制推送可以使用 –force 参数
git push --force origin master
- 删除主机的分支可以使用 –delete 参数,以下命令表示删除 origin 主机的 home 分支
git push origin --delete home
六. 分支管理
6.1 git branch —— 查看分支
- 查看本地所有分支,当前所在分支以 “*” 标出
git branch
- 查看远程所有分支
git branch -r
- 查看本地和远程的所有分支
git branch -a
6.2 git branch -v —— 查看本地的所有分支并显示最后一次提交
当前所在分支以 “*” 标出
git branch -v
6.3 git branch [分支名称] —— 新建分支
git branch [分支名称]
6.4 git branch -d [分支名称] —— 删除本地分支
- 删除指定的本地分支
git branch -d [分支名称]
- 强制删除指定的本地分支
git branch -D [分支名称]
6.5 git branch -m [新的分支名] —— 重命名本地分支
- 修改当前所在的分支名称
git branch -m [新的分支名称]
- 修改其他的分支名称(不是当前所在的分支)
git branch -m [原分支名称] [新的分支名称]
- 强制修改当前所在的分支名称
git branch -M [新的分支名称]
- 强制修改其他的分支名称(不是当前所在的分支)
git branch -M [原分支名称] [新的分支名称]
6.6 git checkout [分支名称] —— 切换与创建分支
- 切换到已存在的指定分支
git checkout [分支名称]
- 创建并切换到指定的分支
git checkout -b [分支名称]
6.7 git merge [分支名称] —— 合并分支
把指定的分支合并到当前所在的分支下
git merge [分支名称]