女朋友说 Git 玩不明白,作为男友给她安排!

288 阅读4分钟

介绍

用git管理代码有一段时间了,偶尔回想发现,自己只是机械的使用常用的一些操作,但是对Git其实没有真正的去了解,写篇文章记录下自己的学习过程及内容。

Git的历史

git的发明者是Linux的创造者“柯林斯”,因为参与Linux的开发者越来越多,所以需要项目管理工具。一开始他们选择的是BitKeeper,但是希望对方能开源的时候,对方没有理会。

所以“柯林斯”终止了与BitKeeper的合作,自己写了一套管理工具,并将之开源。这套工具就是git。

Git的安装

请百度

Git的使用

  1. 理解Git的工作原理

Git对于项目的内容,创建了三种区域: 工作区域 、 暂存区域 、 本地库区域。 完成上述的内容后,就是本地库与远程库的交互。具体如下图示: image.png

除了上述的团队内部合作,还有跨团队的合作,如下图示: image.png

  1. Git的相关命令
  • 签名: git config --global user.name '前端阶梯'
  • 邮箱: git config --global user.email '前端阶梯@qq.com'
  • 初始化目录: git init
  • 添加文件: git add "文件.xx" // 进入暂存区域
  • 提交文件: git commit -m "提交说明,如:修改的操作说明" "文件.xx" // 进入本地库
  • 查看状态: git status // 能够查看被管理目录的差异状态
  • 操作日志: git log // 查看操作日志
  • 操作日志分屏:下一步 空格键 、 上一页 b键 、退出 q键
  • 其他日志1:git log --pretty=online
  • 其他日志2:git log --online
  • 其他日志3:git reflog
  • 回退版本:git reset --hard 版本号,如下图: image.png

image.png

  • 回退版本1:git reset --mixed 版本号 // 工作区不变
  • 回退版本2:git reset --soft 版本号 // 工作区和暂存区 不变
  • 删除文件: rm 文件.xx // 只是删除工作区的内容,需要add 和commit 到暂存区和本地库
  • 比对文件: git diff 文件.xx // 比对工作区 和 暂存区的区别
  • 比对文件1:git diff // 比对所有文件
  1. Git的分支

image.png

  • 查看分支: git branch -v
  • 创建分支: git branch 分支描述
  • 切换分支: git checkout 分支描述
  • 合并分支: git merge 分支描述 ,如下图:

image.png 上图中,划线的地方说明分支正在合并的状态中。

  • 查看文件: cat Demo3txt, 如下图:

image.png

冲突发生的原因是: 不同的分支,修改了同一个文件的同一行信息,导致冲突。

如何解决冲突:?? 协商处理,删除不需要的,如下图:

image.png

则告知冲突,冲突得到解决,但是还是在合并状态,需要做commit处理。 注意: commit 不可以带文件名

GitHub的使用

  1. 注册账号

上Github官网进行

  1. 创建远程库 image.png

如果想要公开,则选择public

  1. 本地创建远程库的别名

创建远程库完成后,进入对应的库可以看到如下:

image.png

如果本地库与远程库关联,需要记录库的地址:github.com/gaoyujin/xx… 不是特别的方便。 所以可以在本地库中创建别名。

  • 查看远程列表: git remote -v

  • 保存远程库地址: git remote add 别名 github.com/gaoyujin/xx… image.png

  • 推送远程库: git push origin 分支名称,如下图: image.png

推送成功后,可以去远程库查看。

  • 克隆代码: git clone 代码Url

完成三部操作: a、初始化本地库 b、将远程库内容完整的克隆到本地 c、替操作人创建远程库的别名

  • 抓取代码: git fetch origin master image.png

抓取后,只是存储到了本地库,没有进入工作区, 所以需要merge操作。

  • 获取代码: git pull origin master // 这是 fetch + merge 的两步操作

如果需要确认代码,则使用fetch + merge;如果可以大胆获取,则直接使用pull

  1. 邀请团队成员

请百度

跨团队使用

  • fork代码,如下图:

image.png

  • 团队修改,请求提交,如下图:

image.png

SSH免密登录

  • 操作命名:ssh-keygen -t rsa -C 邮箱地址, 三次回车。

  • 然后找到生成的文件,如下图:

image.png

然后把文件:id_rsa.pub中的内容拷贝,黏贴到远程库的如下图:

image.png

这个就可以免密提交代码了。

在IDEA中集成git

  • 点击settings,如下图:

image.png

  • 找到Git配合,如下图:

image.png

  • git初始化(命令:git init),如下图:

image.png

  • 创建文件,提示Add(命令:git add),如下图:

image.png

  • 无脑与远程库pull(命令:git pull 代码Url master --allow-unrelated-histories),如下图:

image.png

  • 推送变更push(命令:git push -u 代码Url master -f),如下图:

image.png

  • 忘记的一个命令: 根据当前的分支,创建一个新的分支 => git checkout -b production-image