0


git—版本控制工具

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的工作流程
  1. 在工作区中修改文件(新建文件、修改文件内容等等)
  2. 将修改好的文件,添加到暂存区,暂存
  3. 将暂存区的文件,提交到仓库,形成版本记录

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可以通过配置从而达到忽视掉这些文件

** 操作步骤: **

  1. 仓库根目录中新建一个 .gitignore 文件(固定文件名)
  2. 将不需要被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 由两部分组成****(一对密钥),分别是:

  1. id_rsa(私钥文件,存放于客户端的电脑中)
  2. id_rsa.pub(公钥文件,需要配置到 gitee平台 中)

**生成ssh key **

步骤:

  1. 打开 Git Bash
  2. 粘贴如下的命令 ssh-keygen -t rsa
  3. 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
  4. 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
  5. 粘贴配置到 码云 -> 设置 -> ssh 公钥 中即可
  6. 检测是否配置成功,打开命令行,执行:ssh -T git@gitee.com

配置:

  1. 打开终端,找到进入.ssh文件夹 —— cd ~/.ssh
  2. 查看.ssh文件夹中的文件(一般有两个“id_rsa ,id_rsa.pub)—— ls
  3. 查看对应的公钥文件内容 —— cat id_rsa.pub
  4. 复制内容,配置到对应的平台
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常用命令总结

  1. 分支管理git branchgit checkoutgit mergegit rebase 等命令用于管理和操作分支。
  2. 标签管理git tag 命令用于管理标签,可以用来标记重要的提交或版本。
  3. 查看提交历史git log 命令用于查看提交历史,可以显示提交的作者、日期、提交信息等。
  4. 查看状态和差异git statusgit diff 命令用于查看工作目录的状态和文件之间的差异。
  5. 撤销操作:除了 git revert,还有 git resetgit checkout 等命令可以用来撤销操作。
  6. 存储临时更改git stash 命令用于将当前工作目录的临时更改存储起来,以便稍后恢复。
  7. 子模块git submodule 命令用于管理子模块,允许将一个 Git 仓库作为另一个 Git 仓库的子目录。
  8. 远程操作:除了 git pushgit pull,还有 git fetchgit remote 等命令用于远程操作。
  9. 重写历史git rebasegit commit --amend 等命令用于重写提交历史。
  10. 交互式操作git add -pgit 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创建一个新的提交,撤销指定提交的修改

标签: git

本文转载自: https://blog.csdn.net/m0_48884170/article/details/137953219
版权归原作者 FZ... 所有, 如有侵权,请联系我们删除。

“git—版本控制工具”的评论:

还没有评论