【发布时间】:2019-04-11 07:15:40
【问题描述】:
我对 git 很陌生,我每隔一段时间就会看到这个。
例如:
- 我在我的分支
branch-A工作了几天(分支是从开发新副本创建的) - 我通过
git add . / git commit -m "blahblah"暂存并提交我的更改 - 现在我想从远程获取最新更改并将其合并到我的分支中,以确保我使用最新代码
-
为此,我使用
git checkout develop切换到我的本地develop分支,git status 显示我落后于 37 次提交myMBPro:MyProj$ git status On branch develop Your branch is behind 'origin/develop' by 37 commits, and can be fast-forwarded. (use "git pull" to update your local branch) Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory)随后是已删除、未跟踪文件的列表
git fetch origin,然后是git merge origin/develop而在develop分支上显示:
myMBPro:MyProj user$ git fetch origin
myMBPro:MyProj user$ git merge origin/develop
Updating 799c6d7a..510c77ab
Fast-forward
.../Implementations/MyRenderer.cs | 39 ++--
... etc
- 我现在通常会切换到我的分支
branch-A并执行git merge develop以将开发合并到branch-A但我通常首先执行git status以检查一切是否正常。所以,我留在develop分支并做git status - 问题是我看到
git status报告可能我项目中的每个文件都已更改(有些未跟踪,有些已暂存,有些已准备好提交)。
```
myMBPro:MyProj user$ git status
On branch develop
Your branch is up to date with 'origin/develop'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
,然后是准备提交的文件列表、未暂存的文件和未跟踪的文件。
所以,我最终得到了很多我什至没有接触过、没有修改过、也没有添加过的文件,这些文件现在显示为被我以某种方式修改过。因此,我犹豫是否将它们合并到我的branch-A。
知道为什么会这样吗?这是否正常(但对我来说,我没有更改的文件出现在我更改时似乎并不正常,现在我需要开始跟踪它们,暂存并提交它们。
我在 MacBookPro 上,从终端使用 git 并使用 SourceTree
【问题讨论】:
-
是否有合并冲突?
-
不,没有冲突,所有合并都是快进的
-
您是否可以在您的分支上添加一些文件?我不记得
git add .的确切行为,但这可能不会添加未跟踪的文件吗? -
检查你的行尾设置,有可能结尾存储在带有 windows 行尾的数据库中
-
@Andy 是的,但那是在我的分支上。我将这些提交给我的分支,然后切换到开发来做我上面描述的事情。在另一个分支上添加文件并将它们提交到该分支在这种情况下应该没有效果