git 使用

本文详细介绍了Git的使用,包括概念、安装、远程仓库设置、个人信息配置和工作流程。阐述了Git分支的操作,如新建、切换、推送、拉取和合并。还讲解了团队开发中代码冲突的产生原因及解决办法,以及代码重置和版本回退的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GIt

概念

  • git是一个专门用于进行团队代码管理的工具。主要包括代码管理、版本回退、代码合并、代码分支等功能
  • 目前比较流行的代码管理工具有gitsvn
    • git:支持离线使用,同时代码管理方式为分布式管理,即每个团队成员都有属于自己的 本地代码仓库
    • svn:必须在线使用,同时集中式代码管理,团队成员必须要先下载最新的代码才能继续操作。

安装

  • git是跨平台的桌面应用程序,去官网下载安装包,一路next即可,建议安装到c盘
  • 测试
    • 桌面右击查看是否有git bash heregit gui here两个选项

远程仓库

概念:是指基于git实现的在线代码托管平台,即可以在线管理代码。可以实现代码保存和读取到远程。目前来说比较流行的是GitHub。因为其用的是国际服务器,国内访问比较慢,所以国内一般也同时使用码云(Gitee)来进行代码托管(国内GitHub)

工作流程:可以在本地通过git以及命令来提交代码到Gitee或拉取代码到本地仓库。

git 个人信息设置

  • git在团队代码管理中,需要设置个人的邮箱以及名称,主要是为了区分团队协作时是谁提交了代码。
  • 运行命令:右击,点击git bash here打开git终端,输入命令
git config --global user.name 名称
git config --global user.email 邮箱地址
  • 名称用英语和数字的组合,可以纯英文。
  • 电子邮箱就是你注册码云所使用的邮箱地址。

git 工作流程

pic

创建远程仓库

  1. 个人中心右上角点击菜单-新建菜单
  2. 输入仓库的名字(项目名字),勾选初始化仓库,中间.gitgnore随意选择一个选项,点击创建仓库即可
  • 默认情况下,应该只有一个.gitgnore文件

将远程仓库的代码克隆到本地

  • 在需要拷贝项目文件夹的目录下右击->打开git bash here输入以下命令并执行

  • git clone 远程仓库的地址
    
  • 初始的文件夹目录

    • .git/:隐藏文件夹,保存了所有的版本代码说明,方便后面进行撤回,即本地代码仓库
    • .gitgnore:这是用于配置可忽略的文件,可以指定项目中那些文件夹可以不用提交,即忽略提交。
  • 注意点

    • 可选:如果不小心用户名或密码输入错误,那么输入以下命令清除错误的用户名和密码,再重新输入git clone命令进行下载
    git config --system --unset credential.helper
    
    • 第二套解决方案:取消window对git的安全认证
    git credential-manager uninstall
    
    • 保存用户名和密码. 避免多次重复输入
    git config --global credential.helper store
    

    测试是否配置成功:push时再输入一次用户名和密码,后面就不需要再输入

    将本地仓库的最新提交的版本代码上传到远程仓库(码云)

    git push
    

    将远程仓库的最新代码拷贝到本地:针对版本不一致的情况

    git pull
    
    • 一般是项目代码版本不是最新的团队成员才会用pull来更新代码,如果是本身电脑没有该项目那么就用git clone来处理

    git 分支

    概念

    • git为了方便团队中不同开发人员管理代码,设置了代码分支机制。通过分支机制,每个团队成员都可以在远程仓库都可以有自己的”私人小仓库”,主要目的是为了个人代码和团队代码更好的管理和区分。

    主要内容

    • 在团队中,组长会给每个成员创建一个个人分支,用于保存团队成员代码的提交。而新建仓库默认生成的master分支则用于保存项目最终可运行的成品代码
    • 个人分支仍然可以实现代码的pushpull等功能。一般是团队成员更改代码之后先提交到个人分支,然后和当前master分支代码进行测试没有问题后才会将个人分支的最新代码提交到master分支。确保master分支始终是可以运行的最新代码

    分支的一般使用流程

    • 图解

      img

    • 个人开发流程:将个人开发的新代码提交到master

      • 团队成员开发代码
      • 代码开发完毕后,将master分支的最新代码(先pull)进行合并,合并到个人分支
      • 测试个人分支上的代码是否可以正常运行。如果为否:则继续修改个人分支的代码,修改后回退到第二步
      • 测试成功后将代码推送到个人分支
      • 切换到master分支,将个人分支的代码合并到master分支的最新代码(测试一下是否可运行,避免个人分支测试成功的同时其他团队成员提交了代码)
      • 测试ok后push到master分支(将个人分支的最新代码汇入到远程的master分支上)

    分支的基本操作

    • 新建分支并切换到个人分支(管理员)

      git checkout -b 分支名称
      
      • 分支名称建议直接以团队成员名字命名,方便区分。只能是管理员才能新建分支
      • 新建分支时git会默认将master分支上最新的代码拷贝到新建的分支上。后续提交到个人分支的代码跟master分支没有关系了。
      • -b:若没有该分支,则新增
    • 切换到某个分支

      git checkout  分支名称
      
      • 若分支不存在,则报错。
    • 将指定分支的代码合并到当前操作的分支

      语法:
      git merge  分支名称
      例子:比如当前是在dengiswen 分支上:将master分支的代码合并到该分支上
      git merge master
      

    注意点

    • 如果是本地新增分支,不会立即同步到远程仓库,需要提交一次代码到远程分支,才可以在程仓库中看到个人分支的代码

      • 推送某个分支的代码到远程仓库
      git push origin 分支名称
      

    团队开发中的冲突

    • 什么是冲突

      • 多个团队成员先后提交了同一个文件同一行代码的更新时,那么会因为队员在进行代码合并时因为代码修改位置一样起冲突
    • 如何触发冲突

      屏幕快照 2021-11-22 上午11.48.45

      • 同事更新了某个文件的代码并推送到了master分支,而你个人也更改了同一个文件的同一行代码,当你编写好代码准备合并master分支时,那么个人分支合并master分支时会因为代码而起冲突问题。

      • 冲突示例图

        img

    • 如何解决

      • 和写对应代码的同事协商决定最终留下哪些代码
      • 再切换到master分支,进行pull,确保master分支时最新代码
      • 合并个人分支代码,之后push到远程master分支
      • 切回至个人分支,和master分支进行合并,并推送到个人分支,保证个人分支代码和master代码是同步的

    忽略 无需提交的文件夹

    • 概念:可以通过设置.gitignore文件确定无需提交的文件夹

    • 使用:将node_modules追加到该文件中,即可实现提交代码时忽略node_modeles文件夹以及.gitignore里其他声明的文件夹

      .gitignore:
      # Build and Release Folders
      bin-debug/
      bin-release/
      [Oo]bj/
      [Bb]in/
      # Other files and folders
      .settings/
      node_modules/
      # Executables
      *.swf
      *.air
      *.ipa
      *.apk
      # Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
      # should NOT be excluded as they contain compiler settings and other important
      # information for Eclipse / Flash Builder.
      

《git 分支使用》

一、新建子分支

git checkout -b 子分支名称

说明:

  1. 该命令执行完成后,会创建并自动切换到子分支;
  2. 子分支新建成功后,会将目前主分支的所有内容全部克隆到子分支;

二、切换分支

注意:切换分支之前,需要先执行 addcommit 将当前分支的代码进行保存。

git checkout 分支名称

三、推送子分支

将本地子分支推送到远程子分支:

git push origin 子分支名

说明:Git 中要求我们在推送之前,必须保证本地有远程的最新代码,所以建议每次 push 之前都先 pull 拉取远程最新代码。

四、拉取远程子分支

git pull origin 子分支名

五、分支代码合并

要将子分支和主分支的代码进行合并,顺序没有要求,可以先将子分支的合并到主分支,然后再将主分支合并到子分支。

例如,我们先将子分支合并到主分支。

1、切换到主分支

2、合并子分支的内容

将子分支中所有的内容合并到主分支:

git merge 子分支名

这一步完成后,可以保证本地的主分支和子分支代码一致。但是,远程的主分支中可有有新的代码。

说明:建议合并完分支后,在当前分支再执行一次 add 和 commit。

3、拉取远程主分支的内容

将远程主分支上组员的代码,拉取到本地主分支。

git pull

这一步完成后,在本地主分支中就已经有所有最新的代码了。

4、推送到远程主分支

将本地主分支的内容推送到远程主分支:

git push

这一步完成后,我们已经将自己最新的代码共享到远程主分支上了,组员都可以从远程仓库拉取我的最新代码。

六、继续开发

1、切换到子分支

2、合并主分支的内容

将主分支中最新的代码,合并到子分支:

git merge master

这一步完成后,本地所有分支的代码就都合并完成了,所有分支的代码都是一样的了。

然后才可以继续下一个功能的开发。

其他操作

:wq 退出

《冲突处理》

一、拉取代码出现冲突

当我们执行完 git pull 命令后,分支名称变成了如下形式,就有可能是拉取的代码和本地的代码出现冲突:

image-20221013145149359

解决完冲突后,需要重新保存一次:

git add .git commit -m 'xxxx'

本地的冲突解决完成并保存后,建议运行项目查看效果:

git push

就可以重新推送代码到远程。

二、代码重置

代码重置,指的是我们可以在本地仓库中查询存储记录,然后通过命令将项目代码回退到指定版本。

1、查看存储记录

git log

找到需要回退的版本的 commit id:

image-20221013145815519

2、版本回退

git reset --hard 111bbb88bc90a7aeaaacc8fd13c3d9424ebdca3d
dd .git commit -m 'xxxx'

本地的冲突解决完成并保存后,建议运行项目查看效果:

git push

就可以重新推送代码到远程。

二、代码重置

代码重置,指的是我们可以在本地仓库中查询存储记录,然后通过命令将项目代码回退到指定版本。

1、查看存储记录

git log

找到需要回退的版本的 commit id:

[外链图片转存中…(img-oq9vzhZm-1667142729089)]

2、版本回退

git reset --hard 111bbb88bc90a7aeaaacc8fd13c3d9424ebdca3d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值