You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

克隆本地Git仓库后如何推送更改及常见Git命令使用疑问

本地Git仓库推送操作方法

你本地两个仓库之间推送的操作步骤如下:

  1. 先处理原仓库的推送限制:默认Git不允许向非裸仓库的当前检出分支直接推送,会导致原仓库工作区和提交记录不一致。你可以进入原仓库路径/original,执行如下配置放开限制,推送后自动同步原仓库工作区:
git config receive.denyCurrentBranch updateInstead
  1. 进入克隆仓库路径/cloned_one,直接执行推送命令即可(以下示例分支为main,如果你使用的是master或其他分支,替换对应分支名即可):
git push origin main

如果你不想修改原仓库的配置,也可以反过来在原仓库拉取克隆仓库的变更,进入/original路径执行:

git pull /cloned_one main
常用Git命令区别与适用场景

git fetch

  • 作用:只拉取远程仓库的所有提交、分支、标签数据到本地缓存,不会自动合并或修改你当前的工作区内容,日常使用的git pull本质上就是git fetch + git merge的组合操作
  • 适用场景:你想先查看远程有什么变更,再决定要不要合并到自己的本地分支,避免直接拉取带来的意外合并冲突。比如执行git fetch origin之后可以用git log main..origin/main查看远程main分支比本地多了什么提交,再决定后续操作

git merge

  • 作用:把两个分支的提交历史合并到一起,会生成一个新的合并提交,保留两个分支的完整提交历史
  • 适用场景:
    • 协同开发时要把远程分支的变更合并到自己的本地开发分支,且需要保留完整的提交轨迹
    • 合并功能分支到主分支,方便后续排查历史问题的时候能看到完整的分支合并路径
  • 注意:如果两个分支修改了同一文件的同一位置,会触发合并冲突,需要手动解决后再提交

git rebase

  • 作用:把你当前分支的所有提交“移动”到目标分支的最新提交后面,相当于重写当前分支的提交历史,不会生成额外的合并提交,最终提交线是线性的
  • 适用场景:
    • 你在自己的本地私有分支开发,想要整理提交历史,让提交线更简洁清晰,方便后续代码评审或合并
    • 拉取远程变更的时候不想生成多余的合并提交,保持历史干净
  • 注意:绝对不要对已经推送到公共仓库的分支执行rebase,会导致其他协作者的本地历史和远程不一致,出现大量冲突

git push

  • 作用:把你本地分支的提交上传到对应的远程分支,只有当你的本地提交是基于远程分支的最新提交时,才能推送成功(也就是快进推送)
  • 适用场景:你本地的开发完成,且已经同步了远程的最新变更,没有冲突,要把自己的提交共享给其他协作者的时候使用

git push --force

  • 作用:强制用你本地的分支内容覆盖远程分支的内容,不管两边的提交历史是否冲突
  • 适用场景:
    • 你只在自己的私有分支开发,而且已经对该分支执行了rebase等修改历史的操作,需要同步到远程私有分支的时候
    • 远程分支出现了错误提交,确定要覆盖回滚的时候
  • 注意:公共分支禁止使用强制推送,会直接覆盖掉其他协作者的提交,导致数据丢失。如果一定要在公共分支用,优先用更安全的git push --force-with-lease,只有远程分支和你本地拉取的版本一致的时候才会强制推送,避免覆盖别人刚提交的内容

内容的提问来源于stack exchange,提问作者Sadra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:45:03