我这样做git commit -m "message"
:
> git commit -m "save arezzo files"
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
但之后,当我git status
时,它会显示相同的修改文件:
> git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
我做错了什么?
答案 0 :(得分:384)
正如消息所说:
没有更改添加到提交(使用“git add”和/或“git commit -a”)
Git有一个“临时区域”,在提交文件之前需要添加文件,你可以read an explanation of it here。
对于您的具体示例,您可以使用:
git commit -am "save arezzo files"
(注意标志中的额外a
也可以写成git commit -a -m "message"
- 两者都做同样的事情)
或者,如果您希望对添加到提交的内容更具选择性,可以使用 git add 命令将适当的文件添加到暂存区域,并 git status 预览即将添加的内容(记住要注意使用的措辞)。
您还可以在 git documentation page 上找到有关如何使用git的一般文档和教程,这将提供有关暂存/添加文件概念的更多详细信息。
值得了解的另一件事是 interactive staging - 这允许您将文件的一部分添加到临时区域,因此如果您创建了三个不同的代码更改(对于相关但不同的功能),您可以使用交互模式拆分更改并依次添加/提交每个部分。像这样较小的特定提交可能会有所帮助。
答案 1 :(得分:47)
您没有添加更改。要么通过
专门添加它们git add filename1 filename2
或添加所有更改(从项目的根路径)
git add .
或在提交时使用简写-a
:
git commit -a -m "message".
答案 2 :(得分:38)
你应该这样做:
git commit . -m "save arezzo files"
答案 3 :(得分:7)
我将Git源代码控制下的一个小子项目复制到另一个项目中,忘了删除.git文件夹。当我去提交时,我得到了与上面相同的消息,并且在删除.git
文件夹之前无法清除它。
这有点傻,但是值得检查一下你没有提交的文件夹下没有.git文件夹。
答案 4 :(得分:7)
你可以做到:
git add -u -n
检查您修改和将要添加的文件(干运行:-n选项),然后
git add -u
添加刚刚修改过的文件
答案 5 :(得分:4)
也许是显而易见的事情,但是......
如果索引有问题,请使用git-gui。您可以非常好地了解索引(暂存区域)的实际工作方式。
帮助我理解索引的另一个信息来源是Scott Chacons“Getting Git”第259页并向前推进。
我开始使用命令行,因为大多数文档只显示...
我认为git-gui和gitk实际上让我工作得更快,而且我摆脱了像“git pull”这样的坏习惯......现在我总是先取出......看看我之前的新变化是什么合并。
答案 6 :(得分:4)
当我在我的git add .
文件所在的下面的子目录中完成.gitignore
时,我发现此问题出现了(可以这么说) )。尝试将目录更改为最上面的目录并运行git add .
,然后运行git commit -m "my commit message"
。
答案 7 :(得分:4)
发生这种情况的原因是因为你有一个文件夹已被Git跟踪另一个文件夹,该文件夹也由Git跟踪。例如,我有一个项目,我添加了一个子文件夹。在我把一个放在另一个之前,他们都被Git跟踪了。为了停止跟踪内部的一个,找到它并删除Git文件:
rm -rf .git
在我的情况下,我有一个WordPress应用程序,我在里面添加的文件夹是一个主题。所以我必须转到主题根目录,并删除Git文件,以便现在由父WordPress应用程序跟踪整个项目。
答案 8 :(得分:0)
即使在发出commit --amend
之后,我仍然遇到了git add .
的问题,但仍然无效。结果我做了一些.vimrc
自定义,我的编辑器工作不正常。修复这些错误以便vim
返回正确的代码解决了问题。
答案 9 :(得分:0)
我有一个非常相似的问题,并带有相同的错误消息。 “未暂缓提交更改”,但是当我进行比较时,它显示出差异。我终于发现,前一段时间我更改了目录大小写。例如“ PostgeSQL”到“ postgresql”。我记得现在git有时会在旧的case目录中留下一两个文件。然后,您将为新案例提交新版本。
因此git不知道要依赖哪一个。因此,要解决该问题,我必须进入github的网站。然后,您可以查看两种情况。并且您必须删除不正确的大小写目录中的所有文件。请确保保存了正确的版本,或保存在正确的带有大小写的目录中。
一旦删除了旧案例目录中的所有文件,整个目录将消失。然后进行提交。
这时,您应该可以在本地计算机上执行“拉”操作,而不再看到冲突。因此能够再次提交。 :)
答案 10 :(得分:0)
如果您有一个从其他git-Repository复制的子文件夹,则首先必须从子存储库中删除$ .git $文件:
iframe.contentWindow
之后,您可以转到父文件夹并使用public Transform[] SpawnPoints;
public Transform[] EffectPoints;
public float spawnTime = 1.5f;
public float effectSpawnTime = 1f;
public GameObject Coins;
public GameObject Effect;
int a = Random.Range(0, 4);
// Use this for initialization
void Start()
{
InvokeRepeating("SpawnParticle", effectSpawnTime, effectSpawnTime);
InvokeRepeating("SpawnCoins", spawnTime, spawnTime);
}
// Update is called once per frame
void Update()
{
}
void SpawnCoins()
{
int spawnIndex = Random.Range(0, 4);
Instantiate(Coins, SpawnPoints[spawnIndex].position, SpawnPoints[spawnIndex].rotation);
}
void SpawnParticle()
{
int spawnIndex = Random.Range(0, 4);
Instantiate(Effect, EffectPoints[spawnIndex].position, EffectPoints[spawnIndex].rotation);
}
。
答案 11 :(得分:0)
如果我有更多文件,我有7000个图像文件当我尝试从项目的路径文件夹中添加它们时,它没有添加,但是当我转到图像文件夹时,一切正常。遍历目标文件夹并执行以下命令
git add .
git commit -am "image uploading"
git push origin master
git push origin master枚举对象:6574,已完成。计数对象:已完成100%(6574/6574)。增量压缩最多使用4 线程压缩对象:100%(6347/6347),已完成。编写对象: 28%(1850/6569),142.17 MiB | 414.00 KiB / s