GIT 版本管理 developer 入门 (二)

本文深入解析Git的常用命令,包括如何拉取远程仓库的最新更改、提交代码等操作流程。通过理解Git的本地文件存储结构,指导如何高效地进行版本管理和团队协作。

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


上一篇 GIT 版本管理 developer 入门 (一) : https://blog.youkuaiyun.com/hl1986503/article/details/84977791

GIT 常用命令

GIT 拉取远程仓库的最新更改

  1. 先来理解一下git在本地文件的存储结构
    ( 注 : 仅是个人理解 , 不是真实结构 , 通过该结构理解各个常用命令而已 , 不要吧这个结构当作真正的git 底层实现 )
    在这里插入图片描述
    当你在本地修改了文件后 , 文件会存储在无保护的快照区
    通过 : git add 命令将文件加入缓冲的待提交区
    通过 : git commit 命令提交到本地分支存储区
    通过 : git push 命令提交到本地分支到远程仓库
    通过 : git pull 命令拉取远端仓库中远端分支到本地分支存储区
    ** 这里有人会问 , 为什么有个 [远端分支存储区] , 这里就涉及了 git fetch 命令的理解了 **
  2. 使用 git fetch + git merge 拉取远程仓库到本地 [方法1]
    (1) git fetch origin <分支名> # 拉取 [远程仓库分支] 到本地的 [远程分支存储区]
    (2) git log -p master…origin/<分支名> # 比对 [本地分支存储区] 与 [远程分支存储区] 的差异
    (3) git merge origin/<分支名> # 将 [远程分支存储区] 的改变 合并到 [本地分支存储区]
  3. 使用 git fetch + git merge 拉取远程仓库到本地 [方法2]
    (1) git fetch origin <分支名> :tmp # 在本地新建一个临时的 [tmp分支] 并将 [远程仓库分支] 拉取到本地 [tmp分支]
    (2) git diff tmp # 比对 [本地分支存储区] 与 [tmp分支] 的差异
    (3) git merge tmp # 将 [tmp分支] 合并到 [本地分支存储区]
    (4) git branch -d tmp # 删除临时的 [tmp分支]
  4. 使用 git pull 拉取远程仓库到本地
    直接拉取 [远程仓库分支] 到 [本地分支存储区] 并完成合并
    其实就是一个命令直接完成 git fetch + git merge 的功能
    相对的 git pull 更简单 , 但还是 git fetch + git merge 更安全

GIT 提交代码

大家看到其他git 相关入门博客时应该是 各种各样的命令的介绍 , 但我觉得应该把需求拿出来一个一个解说一下
  1. [修改了代码 / 添加了文件] 后 , 想要提交代码
    (1) 查看本地修改了的文件 : git status , 此命令会展示出所有在本地有变动的文件
    在这里插入图片描述
    (2) 如图所示 status.txt 就是存在于 [无保护快照区] 的 , add.txt 是存在于 [缓冲待提交区] 的
    使用 git add <文件名> 来把指定的文件 , 加入到 [缓冲待提交区]
    如果 所有在 [无保护快照区] 的文件都是准备要提交的
    使用 git add . 命令 , 用一个 点 代指所有 [无保护快照区] 文件
    (3) 使用 git commit 来提交所有 [缓冲待提交区] 的文件 , 需要添加提交注释哦~!
    git commit -m “这是本次提交的注释”
    这样 所有 [缓冲待提交区] 的文件都 提交到了 [本地分支存储区]
    (4) 最后使用 git push 来把所有 [本地分支存储区] 推送到 [远程仓库分支]
    这里不是推送到 本地的 [远程分支存储区] , 而是直接 推送到 [远程仓库分支]
  2. 提交代码前 , 一定要先拉取一下 , 不然会有冲突哦~!
有些内容不想提交又该怎么办?
  1. 如果是经常需要过滤的文件,直接加入到 .gitignore 文件中
# idea 生成文件
*.iml
.idea/
*/target/
/.swp

# eclipse 生成文件
*.project
*.settings/*
*.settings
  1. 某个文件只在本次提交中过滤:假定未变更
    一次假定未变更
    git update-index --assume-unchanged <文件path>
    或,永久假定未变更
    git update-index --skip-worktree <文件path>
    如:.gitignore 文件,是基本永久不会需要提交的
    git update-index --skip-worktree .gitignore

下一篇 GIT 版本管理 developer 入门 (三) : https://blog.youkuaiyun.com/hl1986503/article/details/84993725

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值