git 状态(无需提交,工作目录干净),但是已提交更改
git status (nothing to commit, working directory clean), however with changes commited
我发现了很多类似主题的问题,但我没有找到任何关于这个问题的实用指导:为什么 git status
通知我 nothing to commit, working directory clean
,即使很难我已经在我的本地进行了修改分支?
以下是我遵循的步骤:
git init
[在分支 master - 初始提交,无需提交(create/copy 个文件并使用 "git add" 进行跟踪)]
git remote add https://github.com/username/project.git
git pull origin master
touch test
git add test
git commit -m "Adding file for test purposes only."
git status
[在分支 master 上 - 无需提交,工作目录干净]
如果我做git push
,修改会提交到远程分支。我只想在修改后执行"git status",并收到我在本地分支上有更改必须推送到项目远程分支的信息。
谁能告诉我发生了什么事?请开门见山。
在此先感谢 SO 社区!
git status
输出默认告诉你三件事:
- 你在哪个分行
- 您的本地分支相对于远程分支的状态如何
- 如果您有任何未提交的文件
当您执行 git commit
时,它提交到您的本地存储库,因此 #3 没有显示要提交的内容,但是,如果您设置了跟踪分支,#2 应该显示您需要推送或拉取。
如果您发现 git status 的输出冗长且难以理解,请尝试使用 git status -sb
这不那么冗长并且会清楚地显示您是否需要推或拉。在您的情况下,输出将类似于:
master...origin/master [ahead 1]
git status
非常有用,在您描述的工作流程中执行 git status -sb
:触摸文件后、添加文件后和提交文件后,查看输出中的差异,它将使您更清楚地了解未跟踪、跟踪和提交的文件。
更新#1
如果在读取 git 状态输出时存在误解,则此答案适用。但是,正如所指出的那样,在 OP 的情况下,上游设置不正确。为此, 是正确的。
您的本地分支不知道远程分支。如果你不告诉 git 你的本地分支 (master) 应该将自己与远程分支 (origin/master 在这种情况下);那么 git status
不会告诉你你的分支和远程分支之间的区别。所以你应该使用:
git branch --set-upstream-to origin/master
或使用短选项:
git branch -u origin/master
这个选项--set-upstream-to(或简称-u)是在git 1.8中引入的.0.
设置此选项后; git status
将向您展示类似的内容:
# Your branch is ahead of 'origin/master' by 1 commit.
问题是您没有指定遥控器的名称:
而不是
git remote add https://github.com/username/project.git
你应该使用:
git remote add origin https://github.com/username/project.git
我遇到了同样的问题,因为我在工作目录中有 2 个 .git
文件夹。
您的问题可能是由同一件事引起的,因此我建议您检查是否有多个 .git
文件夹,如果有,请删除其中一个。
这让我成功上传了项目。
其他人没有提到的小提示:git 如果您在项目文件夹中添加空文件夹,则不会记录更改。就是这样,我添加了具有随机名称的空文件夹以检查它是否正在记录更改,但事实并非如此。
但是当我开始在其中添加文件时,它就开始这样做了。
干杯。
删除你的 .git 文件夹,然后用 git init 重新初始化 git,在我的例子中是工作,因为 git 添加 命令暂存文件夹和 .git 文件夹中的文件,如果在提交后关闭 CLI,将会暂存区中的双文件夹使 git 系统抛出此问题。
只需执行以下步骤
删除 .git 文件夹
添加 git 存储库
$ git init
$ git add origin master repo.git
然后拉取或推送文件
完成!!!
此解决方案可能不适用于大多数情况,但在以下情况下它是救命稻草;您正在进行重大更改,然后 git commit
可以正常工作,但是当您对一个文件(比如 CSS 文件)进行轻微更改时,git commit
将无法正常工作。
我遇到了这个问题,我通过在 GitHub 上进行更改并在 运行 git pull
上提交到我的本地存储库来解决这个问题。
按照这些步骤进行提交
1.making 保护文件的新分支
git checkout --orphan latest_branch
2.add 进入新分支
git add -A
3.commit
git commit -am "commit message"
4.checkgit状态
git status
5.files或正确尝试在这一步
git push -f origin main
现在您的文件是安全的
如果你不想要特定的分支,请清除你的分支,然后创建你想要的分支
例如:master 或 main
6.Delete分行
git branch -D main
7.Rename当前分支到main
git branch -m main
8.Finally,强制更新您的存储库
git push -f origin main
对我来说
$ git fetch 有效。它有助于将数据加载到 master
我发现了很多类似主题的问题,但我没有找到任何关于这个问题的实用指导:为什么 git status
通知我 nothing to commit, working directory clean
,即使很难我已经在我的本地进行了修改分支?
以下是我遵循的步骤:
git init
[在分支 master - 初始提交,无需提交(create/copy 个文件并使用 "git add" 进行跟踪)]git remote add https://github.com/username/project.git
git pull origin master
touch test
git add test
git commit -m "Adding file for test purposes only."
git status
[在分支 master 上 - 无需提交,工作目录干净]
如果我做git push
,修改会提交到远程分支。我只想在修改后执行"git status",并收到我在本地分支上有更改必须推送到项目远程分支的信息。
谁能告诉我发生了什么事?请开门见山。
在此先感谢 SO 社区!
git status
输出默认告诉你三件事:
- 你在哪个分行
- 您的本地分支相对于远程分支的状态如何
- 如果您有任何未提交的文件
当您执行 git commit
时,它提交到您的本地存储库,因此 #3 没有显示要提交的内容,但是,如果您设置了跟踪分支,#2 应该显示您需要推送或拉取。
如果您发现 git status 的输出冗长且难以理解,请尝试使用 git status -sb
这不那么冗长并且会清楚地显示您是否需要推或拉。在您的情况下,输出将类似于:
master...origin/master [ahead 1]
git status
非常有用,在您描述的工作流程中执行 git status -sb
:触摸文件后、添加文件后和提交文件后,查看输出中的差异,它将使您更清楚地了解未跟踪、跟踪和提交的文件。
更新#1
如果在读取 git 状态输出时存在误解,则此答案适用。但是,正如所指出的那样,在 OP 的情况下,上游设置不正确。为此,
您的本地分支不知道远程分支。如果你不告诉 git 你的本地分支 (master) 应该将自己与远程分支 (origin/master 在这种情况下);那么 git status
不会告诉你你的分支和远程分支之间的区别。所以你应该使用:
git branch --set-upstream-to origin/master
或使用短选项:
git branch -u origin/master
这个选项--set-upstream-to(或简称-u)是在git 1.8中引入的.0.
设置此选项后; git status
将向您展示类似的内容:
# Your branch is ahead of 'origin/master' by 1 commit.
问题是您没有指定遥控器的名称: 而不是
git remote add https://github.com/username/project.git
你应该使用:
git remote add origin https://github.com/username/project.git
我遇到了同样的问题,因为我在工作目录中有 2 个 .git
文件夹。
您的问题可能是由同一件事引起的,因此我建议您检查是否有多个 .git
文件夹,如果有,请删除其中一个。
这让我成功上传了项目。
其他人没有提到的小提示:git 如果您在项目文件夹中添加空文件夹,则不会记录更改。就是这样,我添加了具有随机名称的空文件夹以检查它是否正在记录更改,但事实并非如此。 但是当我开始在其中添加文件时,它就开始这样做了。 干杯。
删除你的 .git 文件夹,然后用 git init 重新初始化 git,在我的例子中是工作,因为 git 添加 命令暂存文件夹和 .git 文件夹中的文件,如果在提交后关闭 CLI,将会暂存区中的双文件夹使 git 系统抛出此问题。
只需执行以下步骤
删除 .git 文件夹
添加 git 存储库
$ git init
$ git add origin master repo.git
然后拉取或推送文件
完成!!!
此解决方案可能不适用于大多数情况,但在以下情况下它是救命稻草;您正在进行重大更改,然后 git commit
可以正常工作,但是当您对一个文件(比如 CSS 文件)进行轻微更改时,git commit
将无法正常工作。
我遇到了这个问题,我通过在 GitHub 上进行更改并在 运行 git pull
上提交到我的本地存储库来解决这个问题。
按照这些步骤进行提交
1.making 保护文件的新分支
git checkout --orphan latest_branch
2.add 进入新分支
git add -A
3.commit
git commit -am "commit message"
4.checkgit状态
git status
5.files或正确尝试在这一步
git push -f origin main
现在您的文件是安全的
如果你不想要特定的分支,请清除你的分支,然后创建你想要的分支
例如:master 或 main
6.Delete分行
git branch -D main
7.Rename当前分支到main
git branch -m main
8.Finally,强制更新您的存储库
git push -f origin main
对我来说 $ git fetch 有效。它有助于将数据加载到 master