git学习笔记
git,是分布式的版本管理工具
一、背景
Linux系统, 创始人Linus,1999年研发之后即开源
2002之前前,都是Linus手动合并到代码库中
看中了Bitkeeper,提供给Linux免费使用权.
2005年,由于Linux的一个大牛尝试破解Bitkeeper。
两周之后,linus创建了新的版本管理工具git。
二、git & github
github是网站,是基于git的代码管理平台。
三、git安装
官网下载地址:https://git-scm.com/download/win
-
一直下一步直至安装完成
- 校验:git --version 查看版本号
-
配合github,查看开源项目的代码。
-
官网:https://github.com/
-
以slf4j为例子,它的代码地址:https://github.com/qos-ch/slf4j
-
找到 【clone or download】按钮 点击download zip
-
git clone + 链接地址,代表将远程代码克隆到本地
- 例如 git clone https://github.com/qos-ch/slf4j
-
配置git,获取更改的权限。
-
配置项:用户名和邮箱(在github上注册一个)
-
命令:
-
git config --list 显示配置列表
-
git config --global user.name “用户名”
-
git config --global user.email “邮箱”
-
-
可选的配置密钥,才能使用git开头的链接地址,如:git@github.com:qos-ch/slf4j.git
- 在本地生成密钥 :
- ssh-keygen -t ras -C “邮箱地址”
- 执行命令后,会提醒你设置文件夹保存key,默认是.ssh文件夹
- 不设置密码直接回车后,生成id_rsa.pub文件
- 在github上配置密钥:
- settings > SSHand GPG keys > new ssh key
- 验证是否成功:
- 使用:ssh -T git@github.com 或者 直接执行 git开头的项目链接
- 在本地生成密钥 :
四、git的使用命令
- 仓库,管理项目上最基础的目录。
- 在github上创建。然后clone到本地。会提示这是一个空的仓库。
- 新版github放弃了用户名加密码的认证改成了 用户名加 token
- 生成token登录
- 项目右键 > git 查看相关提交、推送、历史记录等操作。
- 回退更改:
- 文件更改后,由白色变成蓝色
- 选中需要退回的文件,右键 > git > revert. 即可退回到文件原来的状态。
- 退回提交:
- 命令:git reset --hard HEAD~
- –hard表示强制执行
- HEAD~代表上一次提交 ~可以加上数字 HEAD~2 代表退回上上次提交
五、git的理论知识
-
工作区和暂存区
- 工作区:就是存放代码的地方(项目文件夹)
- 暂存区:临时存放改动的地方(通常在新建项目时使用)
- 本地仓库:安全存放代码的地方
- 远程仓库:github
- git add 将代码从工作区 —> 暂存区(把文件托管给git)
- git commit 将代码从暂存区 —> 本地仓库(存在一笔提交记录)
- git push 将代码从本地仓库 —> 远程仓库 (促进多人合作)
-
分支
-
互不影响又同时进行的合作方式
-
创建仓库时,自动创建一个master主干。
-
具体使用场景:
- master:一般用来存放以上线的代码。
- 开发新的功能时,创建新的分支,每个人使用自己的分支。
- 最终进行合并,合并分支时会出现冲突问题。
-
-
分支的使用
- *代表所在分支
- 创建分支:
- git branch + 分支名 默认拉取master上的代码创建分支
- 切换分支:
- git checkout + 分支名
- 合并分支:
- git merge + 分支名
- 例如 test --合并–> master,首先确定当前分支为master 执行 git merge test
- 这样test的代码就会出现到master代码中
-
分支冲突解决:
- 出现冲突时:项目右键 -> git >conflicts resolved
- 会出现三个对比框 最左侧时当前分支的代码 最右侧是待合并的代码 中间是选择合并的结果
-
推送分支到远程仓库:
- git push origin test:test
- test:test 冒号前面代表本地分支的名,冒号后面代表远程分支名
六、git仓库总结
分为本地仓库和远程仓库
- git init 新建一个本地代码库
- git clone 从远程拷贝 、
- 拿到远程仓库的修改 git pull(拉取)
- 提交给远程仓库修改 git push(推送)
- 如果想要创建一个自己的分支,确认要拉取的代码分支确保是最新的代码 git pull 然后执行创建分支的流程(从master拉取)
- 写好代码后,再推送给远程仓库
- 如果需要,再合并代码,让代码上线