主要目的
- 实现 git 项目管理,本地开发与提交。
基本命令
1.查看分支
- 查看所有分支(远程和本地)
git branch -a
- 查看本地所有的分支
git branch
- 列出所有的远程分支
git branch -r
- 查看本地分支与远程分支的映射关系
git branch -vv
- 撤销本地分支与远程分支的关系
git branch --unset-upstream
- 将本地新建的分支与远程分支相关联(在当前分支下输入以下命令)
git branch -u origin/分支名 //其中origin/分支名 中分支名 为远程分支名
或使用下面命令
git branch --set-upstream-to origin/分支名
###
2.拉取远程分支并更新本地分支
git fetch origin(不指定分支名就是远程全部分支)
git fetch origin XXX (拉下远程指定的分支)
git pull origin master
3.新建分支
- 从远程拉取分支到本地
git checkout -b 本地分支名 origin/远程分支名
- 新建一个本地分支并切换到该分支
git checkout -b 本地分支名
- 新建一个本地分支(仍停留在当前分支)
git branch 本地分支名
4.切换分支
- 切换到另一个分支
git checkout 分支名
- 切换到上一个分支
git checkout -
5. 提交分支
- 添加当前目录的所有文件到暂存区
git add .
- 提交暂存区到仓库区
git commit -m 'submit-新功能开发完成'
- 直接来提交到仓库 (不需要执行 git add 命令)相当于 一二步的合并
git commit -a -m 'submit-新功能开发完成'
- 直接来提交到仓库 (不需要执行 git add 命令)相当于 一二步的合并,但是只能提交已经追踪过且修改了的文件,如果是新增文件就必须使用 git add 的命令;
git commit -am 'submit-功能完成'
- 提交时显示所有 diff 信息
git commit -v
- 分次提交 (添加每个变化前,都会要求确认对于同一个文件的多处变化,可以实现分次提交)
git add -p
查看所有分支列表,包括本地和远程
git branch -a
查看远程版本库分支列表
git branch -r
可以查看本地分支对应的远程分支
git branch -vv
对当前分支重命名
git branch -m
6.删除分支
- 删除本地的分支
git branch -D XXX //强制删除
git branch -d XXX //如果在分支中有一些未merge的提交,那么会删除分支失败
- 删除远程仓库的 分支.
git push origin --delete XXX
###
7.查看信息
- 显示有变更的文件
git status
- 显示当前分支的版本历史
git log
- 显示暂存区和工作区的差异
git diff
- 显示某次提交的元数据和内容变化
git show [commit]
- 显示 commit 历史,以及每次 commit 发生变更的文件
git log --stat
- 显示当前分支的最近几次提交
git reflog
- 显示过去 5 次提交
git log -5 --pretty --oneline
- 显示某次提交发生变化的文件
git show --name-only [commit]
- 显示指定文件相关的每一次 diff
git log -p [file]
- 显示指定文件是什么人在什么时间修改过
git blame [file]
- 搜索提交历史,根据关键词
git log -S [keyword]
- 显示所有提交过的用户,按提交次数排序
git shortlog -sn
- 显示某次提交时,某个文件的内容
git show [commit]:[filename]
实例:
1. 新建本地分支并推送到远程分支
//远程先开好分支然后拉到本地
git checkout -b feature origin/feature //检出远程的feature分支到本地
//本地先开好分支然后推送到远程
git checkout -b feature //创建并切换到分支feature
git push origin feature:feature //推送本地的feature(冒号前面的)分支到远程origin的feature(冒号后面的)分支(没有会自动创建)
2.分支提交:
//提交 feature-goods-3.1.2 代码,操作如下
git add .
git commit -m 'submit- 商品图片上传功能完成'
// git commit -a -m 'submit- 商品图片上传功能完成' //将 1,2 步合并
git push
3.切换分支
git checkout -b feature-goods-3.1.3 //新建一个本地分支并切换到该分支
git checkout feature-goods-3.1.3 //切换到当前分支
git checkout - //切换到上一个分支
4.合并分支
例如:想将 dev 分支合并到 master 分支,操作如下:
git checkout master //切换到master分支上
git pull origin master //把远程分支pull下去,及时更新
git merge dev //把dev分支的代码合并到master上
git branch --merged //只是为了确认所有内容都已合并,请运行以下命令:
git status // 查看状态
git push origin master //push到远程分支
5.回滚代码版本(慎用)
git fetch --all
git reset HEAD //需要回滚的版本号
git push origin --force //然后本地分支覆盖远程分支
6.代码撤销
git checkout . // 恢复暂存区的所有文件到工作区
git reset --hard //重置暂存区与工作区,与上一次commit保持一致
7.本地分支覆盖远程分支(慎用)
git checkout 分支名
git push origin 分支名 --force (远程分支名)
8.远程分支覆盖本地分支(慎用)
git fetch --all (拉取所有分支)
git reset --hard origin/master (master指定远程的分支)
git pull
9.删除分支
//查看所有分支(本地和远程)
git branch -a
//删除本地分支
git branch -d XXXX
//删除远程分支
git push origin --delete XXX
10.保存当前工作进度
保存当前工作进度
git stash
添加一些注释
git stash save 'message...'
恢复最新的进度到工作区
git stash pop
11.将本地新建的分支与远程分支相关联(在当前分支下输入以下命令)
git branch -u origin/分支名 //其中origin/分支名 中分支名 为远程分支名
或使用下面命令
git branch --set-upstream-to origin/分支名
12.撤销本地分支与远程分支的关系
git branch --unset-upstream
13. 分支打标签
列出当前分支所有标签
git tag
打标签(轻量标签和附注标签)
git tag v0.1.2 (标签版本)
git tag -a v0.1.2 -m '0.1.2版本' (带标注的标签)
# 补打标签
git tag -a v0.1.2 9fbc3d0 (为之前的版本补打标签)
标签发布(git push 不会将标签对象提交到git服务器)
git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
git push origin –-tags # 将本地所有标签一次性提交到git服务器
查看标签版本信息
git show v0.1.2
删除标签
git tag -d v0.1.2 删除标签
###
14.用于比较两次修改的差异
工作区与暂存区(默认)
git diff
Git仓库 vs Git仓库
git diff <commit> <commit>
暂存区 vs Git仓库
git diff --cached <filename>
参考文章:
https://blog.csdn.net/litongqiang/article/details/107388918
https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html