【问题标题】:Remote GitStack - Create Branch远程 GitStack - 创建分支
【发布时间】:2013-02-08 15:44:01
【问题描述】:

我只是不明白为什么这么简单的东西没有写在任何地方......所以我正在努力在远程 GitStack 存储库上创建一个分支。我查看了几十个网页,发现了无数的建议,但是我尝试的任何一个,我总是以“致命:不是 git 存储库(或任何父目录):.git”错误消息告终. 我使用 Web 界面在 GitStack 中创建了一个空存储库。 到目前为止,我最好的尝试是:

git clone http://abc.def.ghi.jkl:9876/TestRepo.git

这告诉我我克隆了一个空存储库。然后我尝试推送一个分支:

git push remote http://abc.def.ghi.jkl:9876/TestRepo.git

为此,我每次都收到错误消息。所以基本问题:我无法将我的项目推送到 Git 存储库,因为不存在分支。但我什至无法创建一个裂缝。我哪里出错了有什么建设性的想法吗?

【问题讨论】:

    标签: git git-bash gitstack


    【解决方案1】:

    您必须先在本地提交更改,然后才能推送它们。

    git add .
    git commit -m "Commit message"
    

    【讨论】:

      【解决方案2】:
      git push remote http://abc.def.ghi.jkl:9876/TestRepo.git
      

      这意味着,您要将分支http://abc.def.ghi.jkl:9876/TestRepo.git 推送到名为remote 的远程。你要找的是

      git push origin <localBranchName>[:<remoteBranchName>]
      

      origin 是您最初从中克隆的遥控器的默认名称。您可以随心所欲地更改它(以及您可以将尽可能多的遥控器与本地存储库关联),但这是另一个主题。

      localBranchName 是本地(工作区)存储库中的分支名称。当然必须存在

      git branch localBranchName
      git checkout localBranchName
      

      通常你应该给它一些有用的东西

      # do something useful
      git add fileA
      # and so on (or just "git add .")
      git commit 
      

      现在可以推送了

      git push origin localBranchName
      

      如果remoteBranchName 应该与本地名称相同,您可以省略它。顺便说一句:主要开发分支的(按照约定)默认分支名称是 master(与 SVN 比较 trunk

      更新:要读的东西 :) http://git-scm.com/book

      【讨论】:

        【解决方案3】:

        最初你有一个空的本地存储库。

        将一些文件添加到文件夹并运行这些命令

        git add *
        git commit -m 'My message'
        

        如果您正在寻找分支,请执行以下操作。

        git checkout -b branchName
        

        这会创建一个分支并自动将您移至该分支。添加一些文件或更改一些文件并与第一次一样:

        git add *
        git commit -m 'My message'
        

        现在您在 master 分支中有一个提交,并且一个名为 branchName 的分支从第一个提交分支。现在您可以留在新分支并继续在那里工作,或者您可以在 master 和您的分支之间来回切换以在两个地方工作。

        git checkout master - takes you back to master
        git checkout branchName - takes you to the branch
        

        如果要将分支合并到 master,请执行以下操作:

        git checkout master
        git merge branchName
        

        如果有任何问题,请修复冲突并继续

        git add *
        git commit -m 'Commit message'
        

        希望我为你澄清了

        如果你想使用 git push 来推送一个分支,那么只需这样做

        git push origin branchName:remoteBranchName

        branchName 是您要推送的分支的名称,remoteBranchName 是您希望它在推送到服务器时具有的名称。

        Origin 是您首次克隆时为远程仓库指定的默认名称。如果 origin 不存在或者你的遥控器有不同的名字,那么运行这个:

        git remote - this will list all remotes set up
        

        然后只需使用列表中的一个名称(无论您要推送到哪个名称)

        【讨论】:

        • "git commit -m 'My message' 这将自动将您的文件发送到远程仓库。"不。“最初你有一个空的本地存储库。” clone之后一般不会
        • 对不起,我在提交时滑倒了,在他的情况下,他说他初始化并清空了 repo,所以它将是空的,如果服务器上有文件克隆会拉取它们(在大多数情况下你确实有文件 - 我知道)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-25
        • 1970-01-01
        • 2021-06-21
        • 2019-08-14
        • 2017-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多