因此,我与学校里的一些人一起工作,并向该项目编写了一些代码,然后尝试推广该项目。然后我意识到我没有在推入之前拉扯,并且出现了错误消息:
error: Your local changes to the following files would be overwritten by merge:
.idea/misc.xml
请在合并之前提交您的更改或将其保存。
所以我尝试改为提交并得到此信息:
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 15 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .idea/misc.xml
modified: src/Road.java
未添加任何更改来提交(使用“ git add”和/或“ git commit -a”)
它一直没有问题,直到我搞砸为止,由于这是一个小组项目,我不确定我要从网上找到的类似问题中测试多少。这是我第二次使用git bash,所以我对我能做什么以及对我的命令影响到项目的影响知之甚少。 感谢所有帮助!
编辑:我知道从事该项目的其他人已经将一些新代码推入了项目,并且真的不想为他们弄乱任何东西
答案 0 :(得分:0)
git branches
适合在小组方案中工作。
工作模型是每个新的feature
都拥有自己的分支,并且当该分支上的工作完成时,您发出一个pull request
。
pull request
由其他成员审核,然后merged
进入master
分支。
git stash
是您遇到的情况的便捷命令。
在master分支上,运行git stash
,此命令会将您的更改保存在另一个branch
中,同时清除当前的branch
。
现在,您可以git pull
接收来自master
分支的更改。
然后,您可以使用git branch -b branch_name
创建另一个分支。
现在,我们将使用stashed
将这些git stash apply
更改应用于此分支。
编辑#1:我假设您拥有staged
的更改。如果不是,则在git stash
之前,通过运行stage
git add -A
。
答案 1 :(得分:0)
似乎您的一个队友意外提交了.idea/misc.xml
文件。
根据您在另一条评论中写的内容,我认为此文件在本地存储库中未跟踪
(这意味着您执行git status
时,它显示为“未跟踪”)。
我会检查您的文件本地版本之间的区别, 另一个在远程存储库中(例如,在GitLab网站上查看)。
如果您确定可以使用远程代表处的.idea/misc.xml
,
实际上,此文件在您的本地存储库中未跟踪,
那么您只需删除本地文件rm .idea/misc.xml
,然后git pull
应该会成功。
如果此文件包含仅适用于队友计算机的信息,
那么您将需要从远程存储库中删除它,并从版本控制中将其忽略(添加到.gitignore
文件中)。对于您来说,这样做有些棘手,因为您已经在master
分支上工作了。
如果您想合并本地.idea/misc.xml
和团队伙伴.idea/misc.xml
,
那么您应该在.idea/misc.xml
之前提交git pull
文件。
即
git add .idea/misc.xml
git commit -m "add idea misc config file"
git pull
此可能给您合并冲突。
太棒了,这取决于。