这是我在的地方:
如果我试图commit again (#3),它显示nothing to commit, working directory clean.因此,我必须在上次成功做出承诺,这就是为什么它这样说.
当我做的时候,git status我得到了nothing to commit, working directory clean
但是当我尝试在OS X中键入git diff --cached --name-only或git diff --staged终端时它什么也没做.我再次运行该命令后得到命令提示符.
我在这里错过了什么吗?我在git diff上搜索了一些东西,但我必须是盲目的.
运行git diff --cached将显示存储库和索引之间的区别(文件git add在提交到存储库之前暂存的位置).它不会查看工作目录中的文件,也不会比较存储库中的修订版本之间的差异.
如果要查看本地存储库与上游存储库的不同之处,请首先确保远程存储库的本地缓存是最新的:
git remote update
Run Code Online (Sandbox Code Playgroud)
然后将您的本地分支与远程存储库中的相应分支进行比较:
git diff --name-only mybranch origin/mybranch
Run Code Online (Sandbox Code Playgroud)
..假设您的遥控器已命名origin,它可能是.
更新
如果您要推送到空的远程存储库,则回答"将推送哪些文件?" 是"所有人",没有什么可以diff反对的.
您可以运行git ls-files以查看存储库中所有文件的列表.
在我之前的示例中,mybranch将是分支的名称,例如masteror bug/1234或this-is-a-nifty-feature,并且该示例假定您将本地分支推送到远程存储库中的同名分支.
更新2
您询问:
我的远程分支是一个网址,所以起源是什么... uri/[repo name]?所以起源是uri?我将什么称为我当地分支机构的名称?
git存储库可以与一个或多个远程存储库相关联,称为"远程".如果克隆远程存储库:
$ git clone git@github.com:larsks/sandbox.git
Run Code Online (Sandbox Code Playgroud)
您将最终得到一个名为origin引用此存储库的远程:
$ cd sandbox
$ git remote -v
origin git@github.com:larsks/sandbox.git (fetch)
origin git@github.com:larsks/sandbox.git (push)
Run Code Online (Sandbox Code Playgroud)
最初,您的本地分支已命名master,因此您的初始推送将如下所示:
$ git push origin master
Run Code Online (Sandbox Code Playgroud)
这要求git将您的本地master分支推送到master远程存储库的分支,称为origin.
但您可以使用"git checkout -b"或"git branch"命令创建新分支.有很多文档可能会提供比我在这个答案中更好的概述.我会从The Git Book开始.
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |