复习Git命令、Git命令使用流程、VSCode+Git插件管理工程源码

目录

[1 引言](#1 引言)

[2 直接整理一个常用的流程,而不是死记硬背各种命令](#2 直接整理一个常用的流程,而不是死记硬背各种命令)

[3 解决冲突的说明和理解](#3 解决冲突的说明和理解)

[4 git fetch的说明和理解](#4 git fetch的说明和理解)

[5 真正开发不用Git命令,而是使用VSCode插件管理工程](#5 真正开发不用Git命令,而是使用VSCode插件管理工程)


1 引言

以前主要用svn,Git用的少,这次再复习一下Git命令。

2 直接整理一个常用的流程,而不是死记硬背各种命令

bash 复制代码
1. 进入项目目录
# 如果是第一次下载项目
git clone 仓库地址.git
cd 项目目录

# 如果不是第一次,直接进入目录
cd 项目目录


git config user.name "cumtchw"                  #不要加--global,
git config user.email "your_email@example.com"  #不要加--global
#不要加--global以免影响全局,不加--global就相当于只在当前.git/config文件中增加了下面的内容,
[user]
        name = cumtchw
        eamil = xxxx.com


2. 查看 / 操作本地分支
git branch                       # 查看本地分支
git checkout [branch_name]      # 切换到已有分支
git branch [branch_name]        # 创建本地分支  基于当前分支的最新提交,创建一个新的本地分支,但不自动切换到这个新分支
git checkout -b [branch_name]   # 创建并切换分支 基于当前所在的分支创建一个新分支 feature1,并切换到它

3. 切换到主分支并拉取最新代码(确保干净)
git checkout main
git pull

4. 新建功能分支(feature 名可以自由取)
git checkout -b feature-add-xxx

5. 修改代码(新增、修改或删除)

6. 保存并提交改动
git add .
git status                  # commit之前最好执行下git  status查看当前文件差异状态
git commit -m "feat: 修改了某某功能"

7. 如需解决冲突(主分支有更新、你的开发周期较长时)
    # 7.1 回到主分支并拉最新代码
    git checkout main#这一行一定不能省,否则如果当前在feature分支,那么下面的git merge origin/main是直接把/origin/main给合并到当前分支了。
    git fetch origin 
    git merge origin/main

    # 7.2 切换回你的开发分支
    git checkout feature-add-xxx

    # 7.3 将主分支合并进来,触发冲突则解决
    git merge main


8. 查看状态、提交修改
git add .
git status                  # commit之前最好执行下git  status查看当前文件差异状态
git commit -m "修复登录界面崩溃 bug"


#git push <远程主机名> <本地分支名>:<远程分支名>
9. 推送到远程仓库
# 推送本地 feature-add-xxx 到远程同名分支:把我本地的 feature-add-xxx 分支,推送到远程仓库 origin 中去,并让远程也建立一个叫 feature-add-xxx 的分支。
git push origin feature-add-xxx


10. 登录 GitLab / GitHub 网页提交 Merge Request

3 解决冲突的说明和理解

bash 复制代码
Git解决代码冲突
1:将本地分支切换到本地默认主分支:
git  checkout [master|develop]
2:更新本地默认主分支
git  pull [master|develop]
3:切换到提交代码本地分支
git  checkout [branch_name]
4:将本地主分支merge 到当前分支, 此时提示冲突文件
git merge [master|develop]
5:本地解决冲突文件,验证。
6:Git提交代码流程,push到远程分支

问ChatGPT:

这个是不是说,比如我本来git clone了主分支,然后好几个人都创建了自己的分支然后修改代码,

然后可能我改的时间太久了,别人已经有人commit以及push并且merge到master了,

然后这时候我要是commit push merge肯定有冲突,所以我先不commit,我先直接在本地先merge解决冲突,

解决完之后,我再commit push以及申请merge,是这个意思吗,

下面是ChatGPT的理解:

完全正确!你理解得非常到位,这就是这套流程的核心含义,简单总结一下:

你的理解流程细化版

  1. 起点:你从远程仓库clone了代码,基于主分支(master或develop)新建了自己的功能分支,开始开发。

  2. 多人并行开发:别人也基于主分支做了自己的开发,提交(commit)并推送(push)到远程,且已经有人把代码合并(merge)回了主分支。

  3. 你的分支落后了:此时远程主分支比你本地主分支"更新",也就是说远程主分支已经有了你本地功能分支没有的代码。

  4. 直接提交可能冲突:如果你直接把你本地的功能分支代码提交(commit)并推送(push),然后申请合并(merge request),很可能远程主分支与功能分支代码有冲突,合并失败。

  5. 提前合并解决冲突

    • 先切回本地主分支,拉取最新远程主分支代码 git checkout master && git pull origin master

    • 切回你的功能分支 git checkout feature-xxx

    • 把最新主分支合并进功能分支 git merge master

    • 如果有冲突,在本地解决冲突,测试确认无误

    • 提交合并结果 git commit

    • 推送功能分支 git push origin feature-xxx

  6. 申请合并请求:这时你发起合并请求,远程主分支基本不会再出现冲突,可以顺利合并。

4 git fetch的说明和理解

bash 复制代码
git checkout main #一定要有这一步
git fetch origin 
git merge origin/main

解释:

  • git checkout main

    切换到本地的主分支 main,确保后续操作都是基于主分支进行。

  • git fetch origin

    从远程仓库 origin 拉取所有分支的最新信息,包括代码提交、标签等,但不会自动合并到任何本地分支

    换句话说,这一步相当于把远程仓库的最新状态完整下载到本地,并更新远程跟踪分支(如 origin/mainorigin/feature-xxx 等),但不会直接修改你当前所在的本地分支。

    这使得你可以安全地查看远程变化,决定后续如何合并,避免直接自动合并带来的风险。

  • git merge origin/main

    将刚才 fetch 下来的远程主分支 origin/main 的最新代码,合并到当前的本地 main 分支,使你的本地代码更新到远程最新状态。

    如果远程和本地存在冲突,会在这里提示解决。

**注意事项:**但是这里要注意要提前git checkout main,如果没有这一行只有第二第三行,那么假如原来是在本地的feature1分支,那么执行完2 3 行,相当于把远程的main分支合并到本地的feature1里面了。

上面那三行和下面这两行的区别

git checkout main

git pull

  1. git pullgit fetch + git merge 的快捷命令
  • git pull 实际上相当于先执行 git fetch,把远程仓库最新内容拉下来,更新远程追踪分支(比如 origin/main

  • 然后自动执行一次 git merge origin/main,把远程的更新合并到当前分支(这里是 main


  1. 区别在于执行的步骤是否分开
  • git fetch + git merge 可以分两步清晰控制:

    • 先用 git fetch origin 拉取所有远程分支最新信息,但不修改当前分支

    • 然后再决定是否以及什么时候合并 origin/main 到本地 main

  • git pull 是一步完成拉取和合并,自动执行合并,不能中间检查远程变化


  1. 什么时候用哪个更好?
  • 如果你想对远程变化先有个全面了解,或想手动处理合并,避免自动合并导致冲突或意外,推荐先用

    bash

    复制编辑

    git fetch origin git merge origin/main

  • 如果你只是想快速同步本地分支到远程最新状态,且信任远程内容,git pull 更方便快捷

5 真正开发不用Git命令,而是使用VSCode插件管理工程

真正开发的时候不需要敲命令,直接用vscode里面的source control管理工程,进行pull,push,merge以及冲突解决等这些操作。但是前面介绍的这些命令要了解,还有整个流程要理解。

相关推荐
小哈龙30 分钟前
裸仓库 + Git Bash 搭建 本地 Git 服务端与客户端
开发语言·git·bash
GISer_Jing10 小时前
Git协作开发:feature分支、拉取最新并合并
大数据·git·elasticsearch
高山莫衣16 小时前
git rebase多次触发冲突
大数据·git·elasticsearch
码农藏经阁16 小时前
工作中常用的Git操作命令(一)
git
kobe_OKOK_16 小时前
【团队开发】git 操作流程
git·elasticsearch·团队开发
码农垦荒笔记16 小时前
Git 安装闭坑指南(仅 Windows 环境)
windows·git
CC码码1 天前
管理你的多个 Git 密钥(多平台多账号)
git·gitlab·github
CC码码1 天前
管理你的多个 Git 密钥(单平台多账号)
git·gitlab·github
大卫小东(Sheldon)1 天前
GIM 1.5发布了! 支持Windows系统了
git·ai·rust
flying jiang1 天前
将大仓库拆分为多个小仓库
git