Git && Github 笔记
(Git : 版本控制器 , Github : 代码仓库)
一、 基础配置
# 查看用户配置 用户目录下的 .config
git config -l
# 查看本机配置 git/etc/config
git config --system --list
# 查看用户名、邮箱,提交项目必要
git config --global --list
git config --global user.name XXXX
git config --global user.email XXX@XXX
二 、git 的理论知识
image.png四个工作区域 :
1 、本地工作区
git add
将本地工作区改动添加到缓存区
git checkout
切换缓存区,将缓存区分支切换(加载)到本地工作区
注: fetch 、clone 都是从远程仓库拉倒本地 git 仓库 ,fetch 是拉到本地仓库中但不合并
2、 缓存区
git commit
将暂存区的改动提交到本地 git 仓库
git reset
本地 git 仓库重置到缓存区
3、 本地 git 仓库
(保存了项目的各种分支和版本信息)
git push
本地git仓库推送到远程仓库
git pull
远程仓库拉取回本地仓库
注 : pull = fetch + merge
4、远程 git 仓库
代码托管平台 github 、gitee 等
三、远程分支
1、分支:
介绍公司通常使用的两种模式:
master + dev + release : 开发都在 dev ,高级工程师决定何时同步dev或者发布release版本。
master + 个人分支 + release :个人开发完一个功能, 提交 merge request,合并完销毁功能分支 ,适合较多人协同。
# 查看分支
git branch
git branch -r
git branch -vv
# 新建分支
git branch [NAME]
# 切换分支
git checkout -b [branch-name]
# 合并分支 : 合并指定分支到当前分支
git merge [branch-name]
# 删除分支
git branch -d [branch-name]
# 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
2、 冲突
一般自己对冲突代码进行解决,使用现代 ide,可以决定保留冲突的哪个部分。
四、 常用高级命令
1、rebase
rebase 操作常用于合并自己的多次 commit 记录。
git rebase -i HEAD~3
i : 交互模式
注: git rebase 交互界面 GUN , 保存快捷键 ctrl + s 。 没冲突 直接 push -f
2、cherry-pick
常用于摘取某分支的一次或者多次 commit 到 master 。
git cherry-pick XXXXX
区别于 merge , merge 拉取分支全部提交记录 。
五、其他 :
1、git 学习:
https://gitee.com/all-about-git
2、问题openssl:
遇到 macos LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
解决办法:git config --global http.sslBackend "openssl"
3、参考:
https://www.liaoxuefeng.com/wiki/896043488029600/897271968352576