Git 实用小贴士

2020/4/3 11:01:39

本文主要是介绍Git 实用小贴士,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Git 是一个免费的开源分布式版本控制系统, 旨在快速高效地处理从小型到大型项目的所有内容 Git 易于学习 , 占地面积小, 具有闪电般的快速性能. 它具有Subversion,CVS,Perforce和ClearCase之类的SCM工具, 具有廉价的本地分支, 方便的暂存区域和多个工作流等功能 官方这么说的!

原文链接

😋简单说

Git 的出现方便了千万程序员, 提高了开发者之间的协作, 特别相对大型项目而言.

🤟目录介绍

GYwhiF.png

  • 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 的世界相当庞大, 如果诸位看官想系统学习关于祂的知识. 非常乐意奉上收藏已久的几个网站, 我想看完你会有所收获的:

  1. 像 Git 那样思考
  2. 图解 Git
  3. 廖雪峰老师 Git 教程
  4. Git 简明指南

人心有一种恼人的倾向, 即只把压倒他的东西称作命运 -阿尔贝·加缪 -



这篇关于Git 实用小贴士的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程