3

我已经像这样上演了我的文件

git add mydir
git add mydir/myfile

然后将它们推送到我的仓库

git remote add origin https://github.com/usename/myrepo.git
git push origin master

当我查看git status -s它时说我的文件已添加,但我在我的实际存储库中看不到它们。有谁知道这里发生了什么?

4

1 回答 1

8

尚未将文件“添加”到存储库中,仅添加到暂存索引中。

您需要将git commit更改从 更改staging indexrepository.

git status向您显示工作树暂存索引的状态。git log向您显示历史的状态- 换句话说,git log将向您显示已提交到存储库的内容

例如,请参见以下git status输出:


git status               
# On branch master
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#   modified:   Game.py
#

在这种情况下,我们可以看到要提交的更改涉及Game.py. 请注意,这些更改尚未添加到存储库中——正如上面git status所说,它们只是暂存,准备提交。

下一步是提交我们在 中准备好的这些更改staging index并将它们添加到存储库中。git commit是执行此操作的命令。

这个答案,以及链接的Pro Git 书,都有一些优秀的阅读材料,可以帮助您了解提交到git存储库的设置和步骤。

我在我的实际存储库中看不到它们。

“实际”存储库是什么意思?我假设您的意思是您看不到local commit,但是您使用的存储库可能会有些混乱。

您正在使用两个存储库,一个local和一个remote. 就您而言,remote存储库位于 GitHub 上。你在本地做你的工作,然后git push远程

一、本地更改和提交

因此,将代码更改放入local存储库的步骤如下:

  1. 在您的working directory. 这通常是编写一些代码。
  2. commit通过分期更改构建一个。这是使用git add.
  3. “保存”您已构建到存储库中的提交。这是使用git commit.

这些步骤发生在**本地*。这些步骤都不会对您的GitHub存储库产生任何影响。

其次,git pushremote存储库(在这种情况下,是您的 GitHub 存储库)。

将您的代码从local存储remote库中获取,git push使用。

  1. 检查remote您的存储库已知哪些存储local库:git remote -v.
  2. 如果GitHub显示存储库,则需要添加它:.git remote add <NAME> <URL>
  3. 因为您没有git clone,所以两个存储库 (localremote) 没有任何共同的提交。没关系; 它只是意味着git不会自动知道将更改推送到何处,因此您必须指定:git push <NAME> master:master. 这会将您local master的分支推送到<NAME> master分支。
于 2012-08-09T03:11:12.097 回答