为什么文件已经被暂存,提交和推送,再次显示为未跟踪,未暂存或未提交?

时间:2018-11-14 19:05:39

标签: git git-push

我对git比较陌生,对此流程我有一个疑问。在下面,我切换到develop分支并将其与远程develop分支同步。然后,我创建my-feature分支,以某种方式对其进行修改,分段,提交并推送到远程:

  1. git checkout develop //切换到本地develop分支
  2. git pull origin develop(或git fetch origin / git merge origin/develop)//与远程develop分支同步本地develop
  3. git checkout -b my-feature //创建新分支并切换到该分支,现在我知道它包含来自远程的最新代码
  4. my-feature分支上添加和修改某些文件
  5. git add . //暂存我修改过的所有文件
  6. git commit -m "message" //提交所有暂存的文件
  7. git status说:“ 什么都不做,工作正常”
  8. git push -u origin my-feature //通过跟踪选项推送到远程
  9. git status说:“ 您的分支的最新信息是'origin / my-feature ”。

目前,我{strong>还没有完成 my-feature。我还有工作要做,但是我会在几天之内完成。

所以,几天后,我想继续在my-feature分支上,但是我首先要确保我的本地develop和本地my-feature分支是最新的,所以我知道现在,我的本地develop和我的本地my-feature分支中都存在其他开发人员进行的任何合并的请求请求,因此我减少了可能发生冲突的可能性。

所以,我要确保它们已更新

  1. git checkout develop //切换到本地develop分支
  2. git pull origin develop(或git fetch origin / git merge origin/develop)//将最新的合并代码从远程develop转移到本地develop分支
  3. git checkout my-feature //切换到my-feature分支以继续进行工作。这表明“您的分支是最新的'origin / my-feature'”

据我所知,我现在应该通过发布develop将更新后的本地my-feature分支与本地git merge develop分支合并。这会将develop与我当前所在的分支my-feature分支合并。因此,现在应该将远程develop分支上来自其他开发人员的任何合并的拉取请求集成到my-feature分支中,并且我知道我有最新的远程更改,因此我可以继续进行工作。每天这样做可以减少发生冲突的机会。

但是,在执行此操作之前,我发出git status来查看当前分支my-feature的状态。

我感到困惑的是,我看到我在上面第4步中添加或修改的某些文件现在被git status报告为“已删除”>“待提交”,有些报告为“已修改”>“未暂存” ”,还有一些作为“未跟踪”文件。更令人困惑的是,当我在步骤3中切换到上面的my-feature分支时,它显示“您的分支是最新的'origin / my-feature'”,但是文件正在显示或者未暂存,或者未提交或未跟踪。

这应该是吗?

我现在应该简单地再次执行git addgit commit吗?如果已经在上面的步骤6和7中进行了操作,为什么还需要再次执行?

请提供一些解释,我是git的新手,仍然感到困惑。我只熟悉上述命令。

0 个答案:

没有答案