1. git 是什么?
git 是一个 版本控制工具
2. git 的作用是什么?
代码存档备份、文件版本管理、多人协作开发
3. git的下载安装
git下载官网地址 注意:不要安装在中文目录

- 一直 next下一步即可(如果想更改默认的安装路径,请不要出现中文)。
- 安装成功后,桌面不会有任何图标。
- 在任意文件夹内,右键能看到如下菜单,表示安装成功。
- Mac系统,打开终端,输入git --version 回车,看到git版本号表示安装成功。

4. git的配置
- 当我们使用Git记录代码的版本的时候,Git需要知道你是谁?也就是提交代码的人是谁?
- Git要求,必须配置一个用户名和一个邮箱 - 用户名,根据团队要求配置或者自定义配置 —— git config --global user.name "xxx"- 邮箱,根据团队要求配置或者自定义配置 —— git config --global user.email "xxx" - 查看配置信息 —— git config --list

5. git基础命令
5.1 初始化 git 仓库
如果自己有一个尚未进行版本控制的项目目录,想要用Git 来控制它,需要执行如下两个步骤:
- windows用户,进入项目文件夹中,通过鼠标右键打开 "Git Bash Here"
- Mac用户,找到项目文件夹,在文件夹上鼠标右键,选择“在此处新建终端窗口”
- 执行 git init 命令,将当前的目录转化为 Git仓库
初始化仓库,在当前目录下生成一个隐藏文件夹.git —— git init
git init 命令会创建一个名为 .git 的隐藏目录,这个.git目录就是当前项目的Git仓库,里面包含了初始的必要文件。
** 注意事项:**
- 找对项目文件夹(必须保证终端中的路径是项目文件夹)
- 初始化之后,会在项目文件夹中出现一个**.git**的隐藏文件夹;有关git的全部记录都在里面,不可轻易删除
- 不可以嵌套初始化
5.2 git的三个区

5.3 git的工作流程
- 在工作区中修改文件(新建文件、修改文件内容等等)
- 将修改好的文件,添加到暂存区,暂存
- 将暂存区的文件,提交到仓库,形成版本记录


5.4 git的基本命令
- git status 查看工作区文件的状态 (红色:新创建的文件或被修改的文件。 绿色:文件在暂存区待提交。)
- git log 作用:查看提交日志(版本记录) - 如果日志比较多,命令窗口会显示不全 - 按 ↓键,可以查看剩余的日志 - 随时按 q键,退出查看
- 使用git log命令时,可以跟一些选项,简化显示的日志信息:- git log --oneline 单行查看简略版日志 - git log -n 查看最近n次提交的日志- git reflog 查看所有的提交日志
- git reset- 作用:版本回退,将代码恢复到已经提交的某一个版本中- 命令:git reset --hard 版本号 —— 可以回退到任意版本(回退版本后,注意观察工作区的代码)
- git reflog —— 可以查看所有的版本信息
- git add . —— 会将项目工作区目录的所有文件,都暂存管理
- git reset 文件名称 / git reset —— 把文件从暂存区移除
5.5 git忽视文件
在仓库中,有些文件是不想被git管理的。git可以通过配置从而达到忽视掉这些文件。
** 操作步骤: **
- 仓库根目录中新建一个 .gitignore 文件(固定文件名)
- 将不需要被git管理的文件路径,添加到 .gitignore 中

6. git的分支命令
Git的分支功能,允许在当前开发线的基础上,分叉出去一个新的开发线,一个分支代表一条独立的开发线。 **分支的存在,可以保证功能开发的独立性。**
在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 **master **的分支(称作主分支)。
在实际工作中,master 主分支的作用是:**用来保存和记录整个项目已完成的功能代码****,**因此,不允许程序员直接在 master 分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃。 实际开发中,会从master分支分叉出来新分支,用于功能开发,开发测试完毕后再合并到主分支。

相关命令
- git branch —— 查看分支
- git branch 分支名 —— 创建分支
- git checkout 分支名 —— 切换分支
- git merge 分支名 —— 合并代码
分支命令补充
- git checkout -b 分支名 —— 创建并切换分支
- git branch -d 分支名 —— 删除分支
注意:
- git checkout -b 分支名称 是下面两条命令的简写形式: - git branch 分支名称 - git checkout 分支名称

7. 分支冲突
如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们,就会出现合并冲突。

如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。
此时,我们需要打开这些包含冲突的文件,然后 手动解决冲突 ,提交处理完的结果。

分支的本质:分支实质上是一个指针(游动的标记),指向最后一次的版本记录。
每次commit提交后,会形成新的版本记录,这个分支指针就会向后移动,保证一直指向最后一次提交的版本。
注意:git 第一次提交时,就有了一个 master 的主分支,指向第一个提交版本

其实版本回退切换,只是在让分支指针指向不同的版本记录。
当切换分支时,指针也会跟着移动。
当删除分支时,只是把对应的指针删掉即可。
8. git 远程仓库
远程仓库:托管在因特网或其他网络中的 项目版本库。支持多人协作,共同管理远程仓库。
如何创建一个远程仓库?在哪创建?
git代码托管平台
专门用于 存放远程仓库 的网站平台,就是代码托管平台
常见的代码托管平台:
- github 全球最大的开源项目托管平台 - 免费,国内访问受限,不稳定
- gitee 码云,国产开源项目托管平台。免费,访问速度快、纯中文界面、使用友好
- gitlab 对代码私有性支持较好,企业用户多, 一般收费,允许自建 git 服务器
举例:


git支持多种传输协议:
最常用的两种传输协议:
- https协议:需要输入用户名和密码 —— https://gitee.com/xxx/test.git
- ssh协议: 需要配置秘钥,可免密码登录 —— git@gitee.com:xxx/test.git
- 注意:在实际公司开发中,ssh 的方式更为常见,更加安全可靠
ssh 秘钥的作用:
ssh key 的作用:实现本地仓库和 gitee平台 之间免登录的加密数据传输。
ssh key 由两部分组成****(一对密钥),分别是:
- id_rsa(私钥文件,存放于客户端的电脑中)
- id_rsa.pub(公钥文件,需要配置到 gitee平台 中)

**生成ssh key **
步骤:
- 打开 Git Bash
- 粘贴如下的命令 ssh-keygen -t rsa
- 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
- 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
- 粘贴配置到 码云 -> 设置 -> ssh 公钥 中即可
- 检测是否配置成功,打开命令行,执行:ssh -T git@gitee.com
配置:
- 打开终端,找到进入.ssh文件夹 —— cd ~/.ssh
- 查看.ssh文件夹中的文件(一般有两个“id_rsa ,id_rsa.pub)—— ls
- 查看对应的公钥文件内容 —— cat id_rsa.pub
- 复制内容,配置到对应的平台
8.1 克隆、拉取、提交远程代码
- **git clone —— **克隆远程仓库的代码到本地- git clone [远程仓库地址]
- **git pull —— **拉取更新,将远程的代码下载合并到本地的分支- git pull
- **git push —— **将本地仓库中代码提交到远程仓库 - git push 远程仓库地址 分支名- 第1步,将本地仓库和远程仓库建立关联(给远程仓库地址起个别名) git remote add **origin **远程仓库地址- 第2步,使用 git push **-u **origin 分支名称 命令推送- 注意:第一次推送分支可以带 -u 参数,此后可以直接使用 git push 推送当前分支代码到远程分支了。
- 如何拉取别人的远端分支到本地?下载远端分支本地- git checkout -t origin/分支名 —— 先在本地建立一个分支,并切换到该分支,然后从远程分支上同步代码到该分支上- 后续拉取该分支的更新,执行命令:git pull
- git remote- 如果每次push操作都带上远程仓库的地址,非常的麻烦,我们可以给仓库地址设置一个别名- 添加:git remote add origin 远程仓库的地址 - 查看:git remote -v- 删除:git remote remove origin
9. git常用命令总结
- 分支管理:
git branch、git checkout、git merge、git rebase等命令用于管理和操作分支。 - 标签管理:
git tag命令用于管理标签,可以用来标记重要的提交或版本。 - 查看提交历史:
git log命令用于查看提交历史,可以显示提交的作者、日期、提交信息等。 - 查看状态和差异:
git status、git diff命令用于查看工作目录的状态和文件之间的差异。 - 撤销操作:除了
git revert,还有git reset和git checkout等命令可以用来撤销操作。 - 存储临时更改:
git stash命令用于将当前工作目录的临时更改存储起来,以便稍后恢复。 - 子模块:
git submodule命令用于管理子模块,允许将一个 Git 仓库作为另一个 Git 仓库的子目录。 - 远程操作:除了
git push和git pull,还有git fetch、git remote等命令用于远程操作。 - 重写历史:
git rebase、git commit --amend等命令用于重写提交历史。 - 交互式操作:
git add -p、git rebase -i等命令允许进行交互式操作,更精细地控制提交历史和代码变更。
git init在当前目录初始化一个新的 Git 仓库git clone 远程仓库地址克隆一个远程仓库到本地git add 文件名称将某个文件添加到暂存区git add .将所有文件添加到暂存区git commit -m "提交内容描述" 提交暂存区的文件到本地仓库,并附带一条提交消息git status查看当前工作区和暂存区的状态git diff查看当前工作区和暂存区文件的差异git log查看提交历史git branch 分支名称创建一个新的分支git checkout 分支名称切换到指定分支git merge 分支名称将指定分支合并到当前分支git pull拉取远程仓库的更新到本地git push推送本地提交到远程仓库git remote -v查看远程仓库的信息git fetch获取远程仓库的更新到本地,但不自动合并git reset 文件名称将文件从暂存区移除,但保留在工作区git reset --hard 提交id将当前分支指向指定的提交,并丢弃暂存区和工作区的修改git revert 提交id创建一个新的提交,撤销指定提交的修改
版权归原作者 FZ... 所有, 如有侵权,请联系我们删除。