如何初始化,添加一个现有的远程,然后在Git中推送一个新的分支?

如何初始化,添加一个现有的远程,然后在Git中推送一个新的分支?,git,Git,我和我的朋友在Gitlab有一个远程分支。出于某种原因,我通过复制粘贴从我的朋友那里得到了这个项目(我知道这是一件坏事)。但假设我得到了代码,做了一些更改,我想在其中初始化git,然后在我们的项目中推出一个新的分支。比如: 从我的朋友那里得到这个项目 在代码中做一些更改 项目文件夹中的git init git远程添加源https://... git fetch 在这一步中,我想创建一个分支,比如说foo branch。提交我的更改,并将其推送到origin foo branch,后台提交mast

我和我的朋友在Gitlab有一个远程分支。出于某种原因,我通过复制粘贴从我的朋友那里得到了这个项目(我知道这是一件坏事)。但假设我得到了代码,做了一些更改,我想在其中初始化git,然后在我们的项目中推出一个新的分支。比如:

  • 从我的朋友那里得到这个项目
  • 在代码中做一些更改
  • 项目文件夹中的git init
  • git远程添加源https://...
  • git fetch
  • 在这一步中,我想创建一个分支,比如说
    foo branch
    。提交我的更改,并将其推送到
    origin foo branch
    ,后台提交master(或任何其他分支)
  • 执行步骤6的正确方法是什么?在第5步之后,我尝试了
    git reset master
    ,这样我就可以从master branch获得所有旧的提交,但没有成功

    如果你需要的话,我可以提供更多的信息


    编辑1:在第5步之后,我执行了
    git重置原点/主控盘
    。它似乎是一个需要继续的东西,
    git log
    显示了所有以前的提交。但是这一次,
    git status
    显示所有文件,甚至是
    .gitignore
    中的文件。有没有办法正确执行此操作?

    如果tarball中包含要推入
    gitlab
    的代码,您应该这样做

  • 从gitlab克隆存储库
  • 创建一个新分支并签出到它
  • 将zip文件解压缩到存储库中(假设其中没有
    .git
  • 执行
    git diff
    以确认更改是否正确
  • git添加
    git提交
    ,以及
    git推送
    到新分支

  • 你是如何从你的朋友那里“得到”这个项目的?作为一个柏油球?tarball中有
    .git
    目录吗?解压时通过压缩整个项目,是否有
    .git
    目录?没有,解压后我完全删除了
    .git
    目录,对不起,我忘了提及这一点。我还编辑了这个问题。因此,您希望所有旧的提交到一个新的分支。在步骤1中,您的意思是将repo克隆到一个全新的文件夹,在步骤4中,您的意思是复制粘贴所有文件,除了
    .git
    ,从我得到的zip到我刚得到的新克隆,对吧?你的解决方案实际上和我对一个问题的一个答案很相似,对吧?类似的。但是等等,你是说你还保留着原来的柏油球吗?在这种情况下,您可以提取以前(出于某种原因)删除的
    .git
    目录。