“未提交的变更”是什么意思

时间:2014-01-15 10:29:34

标签: git

我想如果你想跟踪你应该git add [files you want to track]

的文件

我不知道为什么收到消息Changes not staged for commit

如果这些文件没有暂存,那么git不应该向我显示那些Untracked这样的文件

enter image description here

我所做的就是从develop分支机构创建一个新功能并在feature/change_excel_format分支机构中工作

我认为这些文件应该处于staged状态,

git status告诉我Changes not staged for commit

enter image description here

简要说明, 我只知道git中有3个阶段untrackedstagedcommitted 任何人都可以告诉我,Changes not staged for commit的阶段是什么 enter image description here

所以如果我修改了文件a(已经在回购中)

并输入git st,git会告诉我Changes not staged for commit

如果我git a,则文件a将在staged status

如果我现在修改了file afile a中会有两个git状态,对吗?

所以我必须决定让staged a提交或让not stage a上演, 然后上一个上演的file a将被丢弃?

enter image description here

12 个答案:

答案 0 :(得分:202)

当您更改已存储在存储库中的文件时,如果您希望将其暂存,则必须再次git add

这允许您仅提交自上次提交以来所做更改的子集。例如,假设您有文件a,文件b和文件c。您修改了文件a和文件b,但这些更改本质上是非常不同的,您不希望所有这些更改都在一次提交中。你发出

git add a
git commit a -m "bugfix, in a"
git add b
git commit b -m "new feature, in b"

作为旁注,如果您想提交所有内容,只需输入

即可
git commit -a

希望它有所帮助。

答案 1 :(得分:36)

你必须使用git add来暂存它们,否则它们不会提交。认为它通知git你想要提交的更改。

git add -u :/将所有已修改的文件更改添加到舞台 git add * :/将修改过的和任何新文件(不是gitignore)添加到舞台上

答案 2 :(得分:9)

请按照以下步骤操作:

1- git stash
2- git add。
3- git commit -m"您的提交消息"

答案 3 :(得分:8)

这是Git告诉你的另一种方式:

  

嘿,您已经做了一些具体的更改,但请记住,当您将页面写入我的历史记录时,更改将不会出现在这些页面中。

如果你没有明确地git add他们(这是有道理的),文件的更改不会被暂存。

因此,当您git commit时,这些更改将不会被添加,因为它们不会被暂存。如果你想提交它们,你必须先将它们暂存(即git add)。

答案 4 :(得分:5)

尝试遵循int git bash

1。git add -u :/

2。git commit -m "your commit message"

  1. git push -u origin master

注意:如果您尚未初始化存储库。

首先

git init 

,并按顺序执行上述步骤。 这对我有用

答案 5 :(得分:1)

假设您保存了新文件的更改。 (例如,navbar.component.html)

运行:

ng status
modified:   src/app/components/shared/navbar/navbar.component.html

如果要上载该文件的更改,则必须运行:

git add src/app/components/shared/navbar/navbar.component.html

然后:

git commit src/app/components/shared/navbar/navbar.component.html -m "new navbar changes and fixes"

然后:

git push origin [your branch name, usually "master"]

--------------------------------------------------- ----------------

或者如果您要上传所有更改(几个/所有文件):

git commit -a

它们将显示为“请输入提交的更改信息。”

  • 如果git commit没有消息(-m),您将看到此消息
  • 您可以通过两个步骤摆脱困境:
  • 1.a。键入多行消息以使提交向前移动。
  • 1.b。留空以中止提交。
    1. 点击“ esc”,然后输入“:wq”,然后按Enter键保存选择。中提琴!

然后:

git push

还有中提琴!

答案 6 :(得分:0)

这意味着它们没有被添加为提交你将不得不做git add scripts / excel_parser.py和喜欢分阶段...一旦你们进行git状态他们将被暂存并且git commit将提交它们

你可以git commit -a -m“all checkin”将自动暂存和提交树中的所有文件

答案 7 :(得分:0)

将新文件添加到代码中时,您可能会看到此错误,而现在您尝试提交代码而不进行暂存(添加)。

要解决此问题,您可以先使用git add(git add your_file_name.py)添加文件,然后提交更改(git commit -m "Rename Files" -m "Sample script to rename files as you like"

答案 8 :(得分:0)

对我有用的是转到根目录,即.git /。 我在一个子文件夹中,但出现错误。

答案 9 :(得分:0)

我也收到了这条消息,所以我在我的python代码中是这样做的:

text = input("Insert commit: ")
os.system("git add .")
os.system("git commit -m %s" %(text))
os.system("git push origin master")

它奏效了,现在没有问题了。 这些命令在带有 python3 的 debian 服务器上使用。

答案 10 :(得分:-1)

处理子模块时会出现此错误。在你的情况下〜/ tmp / hi。尝试

git st

这将显示未跟踪的更改。此时,您应该能够从子模块HEAD提交。有关子模块的更多信息: Git Submotules

答案 11 :(得分:-4)

删除 dir/.../.git

为我工作。