0

我只是不明白为什么这么简单的东西没有写在任何地方......所以我正在努力在远程 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 存储库,因为不存在分支。但我什至无法创建一个裂缝。我哪里出错了有什么建设性的想法吗?

4

3 回答 3

0

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

git add .
git commit -m "Commit message"
于 2013-02-22T22:16:18.050 回答
0

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

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

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

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

于 2013-02-22T22:20:43.347 回答
0
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(与 SVNs 比较trunk

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

于 2013-02-22T22:20:51.623 回答