Git 实用小贴士
2020/4/3 11:01:39
本文主要是介绍Git 实用小贴士,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Git 是一个免费的开源分布式版本控制系统, 旨在快速高效地处理从小型到大型项目的所有内容 Git 易于学习 , 占地面积小, 具有闪电般的快速性能. 它具有Subversion,CVS,Perforce和ClearCase之类的SCM工具, 具有廉价的本地分支, 方便的暂存区域和多个工作流等功能 官方这么说的!
😋简单说
Git 的出现方便了千万程序员, 提高了开发者之间的协作, 特别相对大型项目而言.
🤟目录介绍
- hooks: 存储钩子的文件夹
- logs: 存储日志的文件夹
- refs: 存储指向各个分支的指针 (SHA-1标识) 文件
- objects: 存放 git 对象
- config: 存放各种配置文档
- HEAD: 指向当前所在分支的文件路径, 一般指向 refs 下的某个文件
👍实用小贴士
内建的图形化 Git
gitk 复制代码
彩色的 Git 输出
git config color.ui true 复制代码
显示历史记录时,每个提交的信息只显示一行
git config format.pretty oneline 复制代码
Git 版本查看及升级
# 查看当前版本 git --version # 版本升级 git update 复制代码
Git 全局配置
git config --global user.name "you username" git config --global user.email "you email" 复制代码
git 查看log
git log # 查看提交记录 # 显示简化版 git log --pretty=oneline 复制代码
查看本地分支
git branch * master # * 标识的是当前所在的分支 复制代码
查看远程分支
git branch -r 复制代码
查看所有分支
git branch -a 复制代码
本地创建新分支
git branch [branch name] # 例如 git branch dev 复制代码
切换到新的分支
git checkout -b [branch name] # 等于 git branch [branch name] git checkout [branch name] 复制代码
将新分支推送到 github / gitlab
git push origin [branch name] # 例如 git push origin dev 复制代码
删除本地分支
git branch -d [branch name] # 例如 git branch -d dev 复制代码
删除远程分支
git push origin :[branch name] # 例如 git push origin :dev 复制代码
合并分支
# 在 dev 分支开发完成之后 # 要合并到 master # 提交之后 执行下面命令, 就将 dev 分支合并到了 master # merge 命令用于合并指定分支到当前分支 git merge dev 复制代码
解决冲突
# 人生不如意事,十之八九 # 合并分支, 如有冲突, 必须手动解决冲突后提交 Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容 # git log 可以查看分支合并情况 git log # 等于 git log --graph --pretty=oneline --abbrev-commit 复制代码
Bug 分支
# 在修复 bug 时, 创建 issue-001 分支, 此时需要储藏当前 dev 工作区的内容 # 执行下面命令, 储藏工作内容 git stash # 储藏之后, 工作区是干净的 # 修复完bug之后, 返回 dev 分支 # 此时需要恢复前面的内容 # 查看储藏内容 git stash list # 1. 恢复工作区内容 git stash apply # 这种恢复不会删除 stash list 内容 # 删除 stash 内容 git stash drop # 2. 恢复工作区内容, 并删除 stash list 的内容 git stash pop # 可以多次 stash , 恢复时, 先用 git stash list 查看, 然后恢复指定的 stash git stash apply stash@{0} 复制代码
feature 分支
# 添加一个新功能, 创建并切换到一个新feature分支 git checkout -b feature-vulcan # 开发完成之后, 储藏,提交 git add . && git commit -m "开发完毕" # 切换到 dev 分支 git checkout dev # 此功能sp上司不用了, 就需要删除这个分支 git branch -D feature-vulcan # 大写 D, 即可删除 复制代码
远程分支(多人合作)
# 查看远程库的信息 git remote # 详细的信息 git remote -v origin git@github.com:username/WorkCentent.git (fetch) origin git@github.com:username/WorkCentent.git (push) # 上面显示了,可以抓取和推送的分支. 如果没有推送权限,就看不到 push 地址 # 推送分支 到 marter git push origin master # 同步远程分支到本地 git checkout -b dev origin/dev 复制代码
git 版本回退
git log --pretty=oneline 592f634468af11098f9f4b8e0d47bffe0b144642 (HEAD -> master, origin/master) :penguin: 添加 Git 配置 c74abfe70b1170dbd727717ef823a2abdea66bfb :fire: 提交工作内容 b07144b5e7df4b30416c7b460a12d86c61690c0d :tada: :tada: :tada: Typora 首次提交 # git log 查看提交记录 # HEAD 表示当前本版, 前面一串数字,就是提交id. 要退回上个版本, 就使用: git reset --hard HEAD^ # 上上个版本使用: git reset --hard HEAD^^ # 上100个版本使用: git reset --hard HEAD~100 # 也可以使用 提交id 退回到某个版本, 或者返回之前的某个版本记录 git reset --hard 592f634 复制代码
git 中的后悔药
git reflog # git 会记录每一次的命令 复制代码
- HEAD 指向的版本就是当前版本, 因此, Git 允许我们在版本的历史之间穿梭, 使用 git reset --hard commit id
- 穿梭前, 用 git log 可以查看提交历史, 以便确定回到哪个版本
- 要重返未来, 使用 git reflog 查看命令历史, 以便确定要回到未来哪个版本
管理修改
# 查看修改, 工作区与版本库最新版本的区别 git diff # 查看某个文件 git diff HEAD -- README.md 复制代码
撤销修改
# 提交之前, 丢弃工作区的修改 git checkout -- file 复制代码
配置快捷名
# git status => git st git config --gloval alias.st status # git checkout => git co git config --global alias.co checkout # git commit => git cm git config --global alias.cm commit # git branch => git br git config --global alias.br branch # git log ... => git lg git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 复制代码
是不是意犹未尽?
Git 的世界相当庞大, 如果诸位看官想系统学习关于祂的知识. 非常乐意奉上收藏已久的几个网站, 我想看完你会有所收获的:
人心有一种恼人的倾向, 即只把压倒他的东西称作命运 -阿尔贝·加缪 -
这篇关于Git 实用小贴士的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-19环境变量处理课程:新手入门教程
- 2024-09-19接口模块封装课程:新手入门指南
- 2024-09-19请求动作封装课程:新手入门教程
- 2024-09-19拖拽表格课程:新手入门指南
- 2024-09-19页面权限课程:新手必学的权限管理入门教程
- 2024-09-19如何正确主动登出课程:新手必读教程
- 2024-09-19Element-Plus课程:新手入门与初级教程
- 2024-09-19Token处理入门教程:新手必看指南
- 2024-09-19如何应对被动登出课程的情况:新手必读指南
- 2024-09-19打包优化课程:初学者的必备指南