git 总结+场景应用

文章目录

    • 概要(git)
    • git 冲突经验之谈
    • git 相关操作后续
    • git 具体应用
      • 回退到指定版本
      • git 校验忽略
      • git 版本标签管理
      • git 代码仓库迁移
      • git bundle 后续
      • git 新手应用指南

概要(git)

一、Git简介

Git是一个分布式版本控制系统,用于高效地处理从非常小到非常大的项目版本管理。它允许开发者跟踪文件的更改历史,方便团队协作开发,并且可以在不同分支上进行并行开发。

二、基础指令

  1. 连接(配置)
    • git config:这是Git最基本的配置命令。
      • 例如,设置全局用户名和邮箱:
        • git config --global user.name "Your Name":用于设置全局的用户名,这样在提交代码时会记录这个名字作为作者。
        • git config --global user.email "[email protected]":设置全局的邮箱,同样用于提交记录。
  2. 初始化仓库
    • git init:在本地创建一个新的Git仓库。当你在一个项目目录下执行这个命令后,Git会在该目录下创建一个.git隐藏文件夹,这个文件夹包含了仓库的所有版本控制信息。例如,你有一个新的项目文件夹my_project,在命令行进入该文件夹后执行git init,就初始化了一个本地仓库。
  3. 添加文件到暂存区
    • git add
      • git add.:将当前目录下的所有文件的修改添加到暂存区。暂存区是一个中间区域,用于准备要提交的文件更改。例如,你修改了几个文件,执行这个命令后,这些修改就被标记为准备提交。
      • git add :只将指定的文件添加到暂存区。比如你只想提交main.py这个文件的修改,就可以使用git add main.py
  4. 提交更改
    • git commit
      • git commit -m "commit message":将暂存区的内容提交到本地仓库,并附上一个简短的提交说明(commit message)。提交说明应该清晰地描述这次提交所做的更改,例如git commit -m "Fixed a bug in the login function"
  5. 更新(拉取远程仓库的更改)
    • git pull:这个命令用于从远程仓库获取最新的更改并合并到本地分支。假设你有一个远程仓库,并且已经配置了远程仓库的信息(使用git remote add命令,后面会介绍),执行git pull origin master(假设远程仓库名为origin,分支为master),就会拉取远程master分支的最新更改并合并到本地的master分支。
  6. 推送更改到远程仓库
    • git push
      • git push origin master:将本地master分支的更改推送到远程仓库originmaster分支。前提是你已经设置了远程仓库并且有推送权限。
  7. 重置(回退操作)
    • git reset
      • git reset --soft HEAD~1:这是一种“软”重置。它会将当前分支的头指针(HEAD)回退一个提交,但暂存区和工作区的内容保持不变。例如,如果你刚做了一个提交,但是发现提交说明写错了或者提交的内容有问题,可以使用这个命令回退,然后重新提交。
      • git reset --hard HEAD~1:“硬”重置会将HEAD指针回退一个提交,同时清除暂存区和工作区的修改,使它们恢复到回退的那个提交的状态。这种操作要谨慎使用,因为会丢失回退之后的所有修改。
  8. 版本标签控制
    • git tag
      • git tag :用于给当前的提交打一个标签。例如,git tag v1.0可以给当前提交打上v1.0的标签,用于标记项目的一个版本。
      • git tag -a -m "tag message":创建一个带注释的标签。注释可以详细说明这个标签对应的版本的特点,比如git tag -a v1.1 -m "Added new feature X"
      • git show :查看某个标签的详细信息,包括打标签时的提交信息等。
  9. 分支操作
    • git branch
      • git branch:列出本地所有分支。
      • git branch :创建一个新的本地分支。例如,git branch feature -branch会创建一个名为feature -branch的新分支。
      • git checkout :切换到指定的分支。如果要切换到刚刚创建的feature -branch,可以执行git checkout feature -branch
      • git merge :将指定分支合并到当前分支。假设你在feature -branch上完成了新功能的开发,切换回master分支后,可以执行git merge feature -branch将新功能合并到master分支。
  10. 冲突处理
  • 当合并两个分支或者拉取远程仓库的更改时,可能会出现冲突。例如,两个开发者同时修改了同一个文件的同一行代码。
  • Git会在文件中标记冲突的部分,通常是类似<<<<<<< HEAD(本地分支的内容),=======>>>>>>> (合并进来的分支的内容)这样的标记。
  • 你需要手动编辑文件,选择保留哪部分内容或者重新编写合适的代码来解决冲突。解决冲突后,需要将文件重新添加到暂存区(git add),然后提交(git commit)来完成冲突的处理。

Git还有很多高级的功能和指令,但这些基础指令可以帮助你完成日常的代码版本管理和团队协作开发任务。

git 冲突经验之谈

  1. 预防冲突
    • 频繁沟通
      • 团队成员之间应该保持良好的沟通,尤其是在多人协作修改相同或相关代码模块时。例如,在开发一个大型软件项目的用户认证模块时,开发人员可以通过定期的团队会议或者即时通讯工具,讨论各自的开发计划和任务分配。如果一名开发人员要对用户登录功能进行重大修改,他应该告知其他可能涉及该部分代码的同事,这样可以减少同时修改相同代码行的可能性。
    • 小而频繁的提交和推送
      • 鼓励团队成员进行小而频繁的提交和推送操作。这样可以使每个开发人员的更改尽快地反映在远程仓库中,其他成员在拉取最新代码时能够及时发现潜在的冲突。例如,开发人员每次完成一个小功能或者修复一个小错误后,就提交并推送到远程仓库,而不是积累大量的修改后再进行操作。
    • 合理使用分支策略
      • 采用合适的分支策略,如Git Flow或者基于功能分支的策略。以功能分支为例,每个新功能都在独立的分支上开发。当开发人员开始一个新功能时,从主分支(如mastermain)创建一个新的功能分支(如feature -user -registration)。这样可以将不同功能的开发隔离开来,减少冲突的发生。只有当功能开发完成并经过测试后,才将功能分支合并回主分支。
  2. 识别冲突
    • 拉取前检查
      • 在执行git pull操作之前,最好先使用git statusgit diff命令来检查本地仓库的状态和与远程仓库的差异

你可能感兴趣的:(工具配置,git,git,远程连接,git,标签,git,应用,git,打包迁移,git,版本控制,git,新手应用)