![e6362b4dffe7deea974c96a34e13b536.png](https://i-blog.csdnimg.cn/blog_migrate/57284db41ff852502060a3375ab2ee3f.jpeg)
以下为 windows 系统
一、git 的安装与配置
1、git安装
官网
https://git-scm.com/download/win
下载 Git-2.25.1-64-bit.exe
![c7562c09aa07199e56128706e605e082.png](https://i-blog.csdnimg.cn/blog_migrate/ba5742a3daa0f8b7a6bdf54a9d5c2124.jpeg)
按提示安装,默认勾选
2、邮箱注册
由于企业级是把代码托管到 gitlab 上,我们一般用企业邮箱注册申请账号,再让你直系上级给你添加权限。
![45fb07bad765d6e561110b64594c6fca.png](https://i-blog.csdnimg.cn/blog_migrate/3d1a383c6f22c666b97f8d1a02358a85.jpeg)
3、git的两种下载方式
在 git 中 clone 项目有两种方式:HTTPS 和 SSH
① 以 https:// 开头
② 以git@开头
注意:
HTTPS:不管是谁,拿到 url 随便 clone,但是在 push 的时候需要验证用户名和密码;
SSH:clone 的项目你必须是拥有者或者管理员,而且需要在 clone 前添加 SSH Key。SSH 在 push 的时候,是不需要输入用户名的,如果配置 SSH key 的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
4、git 生成秘钥(初次设置)
检查电脑是否存在 SSH Key:$ cd ~/.ssh$ ls
如果存在 id_rsa.pub 或 id_dsa.pub 文件,说明文件以及存在,跳过创建 SSH Key 步骤
① cd ~/.ssh/ 【如果没有对应的文件夹,则执行 mkdir ./.ssh】
② git config --global user.name "daxing"
③ git config --global user.email "1234@qq.com"
④ ssh-keygen -t rsa -C "1234@qq.com"
连续回车
⑤ 复制SSH keys 即 id-rsa.pub 中的字符串,天骄到 Gitlab 中即可
![becc54363b66e3557f4d07dec11fc8c8.png](https://i-blog.csdnimg.cn/blog_migrate/a259dc17b7ac03130b455e02d0321269.jpeg)
注意:密钥分成两个文件,一个私钥(id_rsa)、一个公钥(id_rsa.pub)。私钥保存在你的电脑上,公钥交项目负责人添加到服务器上。用户必须拥有与服务器公钥所配对的私钥,才能访问服务器上的代码库
二、git 使用过程中遇到的问题
1、了解 git 的工作区域
![200d6c956cbbe003af33eaa9916a46e5.png](https://i-blog.csdnimg.cn/blog_migrate/93cfe588b846ef69c1ad03dd7100d297.jpeg)
① Workspace: 工作区,就是你平时存放项目代码的地方
② Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
③ Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中 HEAD 指向最新放入仓库的版本
④ Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
2、idea 工具配置 git
![6de34577e2aada98ec549075a5f1ee2e.png](https://i-blog.csdnimg.cn/blog_migrate/83c4150003d4506fc2c38ad4d120ab2a.jpeg)
3、新建分支
建议在 gitlab 上新建分支,保证是最新的代码。
往往我们建好分支后,通过 idea 没有刷新建好的分支,你遇到过吗?
这个时候我们可以使用 gti fetch 来解决
补充:git fetch 和 git pull 的区别>>>
git fetch 是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而 git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
4、idea工具 pull 代码报错
![e9a8b9da5766d6c520096346cdeed21f.png](https://i-blog.csdnimg.cn/blog_migrate/41c50a7d1cf42d055bf5083513d9e1ce.jpeg)
出现上面的情况,通常我们做本地调试,会修改配置文件参数,避免冲突,只在本地开发使用,不能提交到线上。如果每次在更新前,revert 重置修改的代码,pull 成功后又需要恢复修改,这样太麻烦了...
这个时候就可以使用 git Stash Changes 保存到堆栈中,当我们 成功 pull 后,在通过 git UnStash Changes 来恢复。
其他应用场景
① 当正在 dev 分支上开发某个项目,这时项目中出现一个 bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用 git stash 命令将修改的内容保存至堆栈区,然后顺利切换到 hotfix 分支进行 bug 修复,修复完成后,再次切回到 dev 分支,从堆栈中恢复刚刚保存的内容。
② 由于疏忽,本应该在 dev 分支开发的内容,却在 master 上进行了开发,需要重新切回到 dev 分支上进行开发,可以用 git stash 将内容保存至堆栈中,切回到 dev 分支后,再次恢复内容即可。
5、如何撤销 commit?
场景:
① commit 提交代码发现注释还是上一次的备注,如果只想修改提交注释,如何操作?
② 当我们 commit 但是没有 push 到远程,如果这个时候发现代码有问题,该怎么操作?
针对第一种情况:
idea 工具中如何实现:
点击 “Version Control” >>> “Log” ,我们可以看到提交的记录,右键选择“Edit Commit Message”
![14aa78ffae70f2ed8be06d157bc10ef7.png](https://i-blog.csdnimg.cn/blog_migrate/ed85e184a5086c6b805a7a26b2bdd835.jpeg)
针对第二种情况:
同上可以使用 undo Commit
下章继续探讨 git Commit 提交那些事。
顺便问下大家,使用 git 通常是用命令行还是用工具自带的操作????
>>>Python 闲谈 11 -- 开发不得不知道的网络基础--域名