【问题标题】:Git command to push the files without cloning无需克隆即可推送文件的 Git 命令
【发布时间】:2022-09-24 16:59:55
【问题描述】:

我有一个要求,

  1. 我需要将远程分支克隆到本地。
  2. 在本地文件夹中添加一些文件
  3. 将更改推送到其他现有远程分支。

    但是,当我确实推送时,它实际上是将远程分支详细信息克隆到我的本地,然后推送它。 因此,我丢失了本地新添加的文件(这些文件将被覆盖),并且这些文件不会推送到另一个分支。

    我用来推送的命令如下:

    git init  
    cd git_test
    git fetch
    git checkout repobranchB
    git add -A
    git commit -m \"test\"
    git push 
    

    git push 中是否有任何选项,它不会将远程分支中的现有文件克隆到本地?我只需要将我本地的所有文件添加到指定的远程分支。

  • 那看起来不太对劲。您应该从将克隆的现有远程分支工作吗?克隆操作在哪里(或者您在新仓库中添加远程并从中获取)?
  • 当您执行git init 时,它将在您的当前目录中初始化一个新的空仓库。您的(新的,空的)存储库中没有定义分支或远程。所以git fetchgit checkout repobranchB 在你给定的例子中都会失败。要推送提交,您需要在推送之前在本地提交。要将子提交(即以另一个提交作为父提交的提交)添加到存储库,您需要拥有该存储库。
  • \"我需要将远程分支克隆到本地\" 但你永远不会这样做。这是第 1 步,因此您需要先执行此操作。
  • Git 不推送文件。 Git 只推送提交.您必须提交包含所需文件快照的提交,然后推送。这样做的方法是使用 Git 存储库。由于提交链接到以前的提交,因此您需要一个现有存储库的克隆,以便您的新提交可以添加到某个分支的最后一个现有提交。

标签: git


【解决方案1】:

听起来你想要:

  1. 结帐分支
  2. 拉取远程更改(临时)
  3. 对文件进行更改
  4. 提交并推送到远程
  5. 再次在本地签出旧分支

    如果不再需要,甚至可以删除本地分支:

    git branch -d repobranchB
    

    一个分支上的提交不应影响另一个分支,除非您在该分支上“git add...”更改。当您切换回原始分支时,您的更改将不存在

    https://git-scm.com/book/id/v2/Git-Branching-Remote-Branches

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2010-11-13
    • 2012-03-30
    • 1970-01-01
    • 2011-05-11
    • 2014-10-14
    • 2012-02-20
    相关资源
    最近更新 更多