我已经暂存了这样的文件
git add mydir
git add mydir/myfile
然后将它们推送到我的仓库
git remote add origin https://github.com/usename/myrepo.git
git push origin master
当我查看git status -s
时,它说我的文件已被添加,但我无法在我的实际存储库中看到它们。有谁知道这里发生了什么?
答案 0 :(得分:5)
您已将 “添加”您的文件到存储库,仅添加到登台索引。
您需要git commit
才能将更改从staging index
更改为repository
。
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
是执行此操作的命令。
This answer以及链接的Pro Git book有一些很好的阅读,可以帮助您了解提交到git
存储库的设置和步骤。
我无法在我的实际存储库中看到它们。
“实际”存储库是什么意思?我假设你的意思是你看不到本地提交,但是你可能会对你正在使用的存储库感到困惑。
您正在使用两个存储库,一个local
和一个remote
。在您的情况下,remote
存储库位于GitHub上。您在本地工作,然后git push
到远程。
因此,将代码更改到local
存储库的步骤如下:
working directory
中进行更改。这通常是编写一些代码。 commit
。这是使用git add
完成的。 git commit
完成的。 这些步骤**本地*。这些步骤都不会对您的GitHub
存储库产生任何影响。
git push
到remote
存储库(在这种情况下,你的GitHub存储库)。要从local
到remote
存储库获取代码,请使用git push
。
remote
存储库知道哪些local
存储库:git remote -v
。 GitHub
存储库不,则需要添加它:git remote add <NAME> <URL>
。 git clone
,因此两个存储库(local
和remote
)没有任何共同提交。没关系;它只是意味着git
不会自动知道推送更改的位置,因此您必须指定:git push <NAME> master:master
。这会将您的local master
分支推送到<NAME> master
分支。