我发现了很多类似主题的问题,但我没有找到关于这个问题的任何实际指导:为什么[DataMember(EmitDefaultValue = false)]
告诉我git status
,即使我在本地分支机构做了修改也很难?
以下是我遵循的步骤:
nothing to commit, working directory clean
[On branch master - 初始提交,无需提交(创建/复制文件并使用“git add”跟踪)] git init
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."
[On branch master - 无需提交,工作目录清理] 如果我执行git status
,则修改将提交给远程分支。我只是想在修改后执行“git status”,并在我的本地分支上接收必须被推送到项目远程分支的信息。
有人能告诉我发生了什么事吗?直截了当,请:(。
先谢谢SO社区!
答案 0 :(得分:18)
您当地的分支机构不了解远程分支机构。如果你不告诉git你的本地分支(主)应该与远程对手( 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.
答案 1 :(得分:1)
git status
输出会告诉您三件事:
当你执行git commit
时,它会提交到你的本地存储库,因此#3显示没有任何提交,但是,如果你已经设置了跟踪分支,#2应该显示你需要推或拉。
如果您发现git status的输出详细且难以理解,请尝试使用git status -sb
这样不那么详细,如果您需要推或拉,它会清楚地显示。在您的情况下,输出将类似于:
master ... origin / master [ahead 1]
git status
非常有用,在您描述的工作流程中执行git status -sb
:触摸文件后,添加文件后,提交文件后,查看输出的差异,它会给出您可以更清楚地了解未跟踪,跟踪和提交的文件。
更新#1
如果在读取git状态输出时存在误解,则此答案适用。但是,正如有人指出的那样,在OPs情况下,上游设置不正确。为此,Chris Mae's answer是正确的。
答案 2 :(得分:1)
问题是您没有指定遥控器的名称: 代替
git remote add https://github.com/username/project.git
您应该使用:
git remote add origin https://github.com/username/project.git
答案 3 :(得分:1)
我遇到了同样的问题,因为我在工作目录中有2个.git
文件夹。
您的问题可能是由同一件事引起的,所以我建议检查一下您是否有多个.git
文件夹,如果有,请删除其中之一。
这使我能够成功上传项目。
答案 4 :(得分:0)
其他人没有谈论的小提示:如果在项目文件夹中添加空文件夹,则git不会记录更改。就是这样,我正在添加带有随机名称的空文件夹,以检查它是否正在记录更改,事实并非如此。 但是,只要我开始在文件中添加文件,它就会开始这样做。 干杯。
答案 5 :(得分:0)
只需执行以下步骤
删除 .git 文件夹
添加git仓库
$ git init
$ git add origin master repo.git
然后拉或推文件
完成!!!
答案 6 :(得分:0)
此解决方案可能不适合大多数情况,但在以下情况下可以救命;您正在进行重大更改,那么 git commit
可以正常工作,但是当您对一个文件(例如 CSS 文件)进行细微更改时,git commit
将无法工作。
我遇到了这个问题,我通过在 GitHub 上进行更改并在那里提交,然后在我的本地存储库上运行 git pull
来解决这种情况。
答案 7 :(得分:0)
按照以下步骤提交
1.创建新分支以保护您的文件
git checkout --orphan latest_branch
2.添加到新分支
git add -A
3.提交
git commit -am "commit message"
4.检查git状态
git status
5.files 或正确的尝试推入这一步
git push -f origin main
现在您的文件是安全的
如果您不想要特定的分支,请清除您的分支并创建您想要的分支
例如:master 或 main
6.删除分支
git branch -D main
7.重命名当前分支为main
git branch -m main
8.最后,强制更新你的仓库
git push -f origin main
答案 8 :(得分:-6)
删除您的 .git 文件夹,并使用 git init 重新初始化 git,在我的情况下这是可行的,因为 git add 命令暂存文件夹和文件在 .git 文件夹中,如果您在提交后关闭 CLI,则暂存区将出现双文件夹,使 git 系统抛出此问题。