git pull origin master 导致暂存我什至没有修改的其他文件



在处理FeatureA分支时的一些观察和问题。

以下是我最初采取的步骤:

git checkout -b FeatureA
// modify X.c, Y.c, Z.c files
git add <modified files>
git commit -m <msg>
git push -u origin FeatureA // creates a PR for a merge into master

原来我看到了一些合并冲突。还意识到我在推送之前没有更新本地repo(我修改的文件最近被另一个开发人员修改和推送,因此我最终使用了旧版本(

然后,在解决冲突之前,我继续获取最新的更改

git pull origin master 

修改了有冲突的文件。完成。运行git status,发现还有很多其他文件(我没有修改,可能是运行git pull origin master的结果(。

$ git status
All conflicts fixed but you are still merging.
(use "git commit" to conclude merge)
Changes to be committed:
File1.c  // file I didn't modify
File2.c  // file I didn't modify
..
...
....
X.c     // file I modified 
Y.c     // file I modified 
Z.c     // file I modified 

因此,我的合并冲突提交将包含所有与合并冲突本身无关的文件。

问题:

  1. 除了我为冲突修改的文件外,还可以提交所有这些不相关的文件吗?我个人不这么认为,只是好奇
  2. 有没有一种方法可以让那些暂存的文件不被暂存,或者允许我只添加和提交我修改过的文件

除了我修改的冲突文件外,还可以提交所有这些不相关的文件吗?

是。事实上,这是必要的。这就是合并。你说git pull origin master。拉就是合并。合并会引入来自另一个分支的更改。这是正常的,也是正确的——这就是你想要做的

有没有一种方法可以让那些暂存的文件不暂存,或者允许我只添加和提交我修改过的文件?

不,你不应该。你应该停止想要。一切都很好。别担心;当您提出pull请求时,将作为pull请求的一部分出现的唯一更改将是您的。

最新更新