【发布时间】:2014-02-20 22:56:29
【问题描述】:
我和几个朋友正在通过 GitHub 开展一个项目。我们都共享同一个分支,这可能不是一个好主意。
我编辑了一些代码并提交了更改。我去推送提交到 GitHub(我正在使用 Visual Studio 2013,它是内置的 Git 工具),但我收到了这个错误:
“有新的远程更改。您必须先拉取它们,然后才能使用 推。”
所以我尝试拉取远程更改并收到此错误:
“发生错误。详细消息:libgit2引发错误。 类别 = 21(合并冲突)。 9 个未提交的更改将是 被合并覆盖”
我尝试更改分支,以便可以推送我的更改,然后将它们与第一个分支合并,但出现此错误:
"无法切换到master,因为有未提交的更改。提交 或在切换分支之前撤消更改。查看输出窗口 了解详情。”
我不知道该怎么做,除了可能将我的更改通过电子邮件发送给我的一位朋友并让他们推送我的更改。但是,我不知道我的本地提交会发生什么。
编辑
问题已解决。在确保同步所有提交后,我打开了 git bash 并提取了远程提交。经过几次尝试后,我回到 Visual Studio 并发现它已经注册了合并。我解决了所有冲突的文件并能够推送项目。
感谢所有回答的人!
【问题讨论】:
-
您需要提交所有本地更改,然后拉取,然后推送。
-
当我尝试拉取时,我收到此错误消息:发生错误。详细消息:libgit2 引发错误。类别 = Os(错误)。无法打开“C:/Users/Walter/Source/Repos/JSDW_FTP_Project/FTPBoss/FTPBoss/bin/Debug/FTPBoss.vshost.exe”进行写入:该进程无法访问该文件,因为它正被另一个进程使用。
-
听起来您实际上并未提交所有您的更改。做一个
git status(或任何等效的Visual Studio 提供)。 -
我提交了所有更改,但我仍然收到此错误:发生错误。详细消息:libgit2 引发错误。类别 = Os(错误)。无法打开“C:/Users/Walter/Source/Repos/JSDW_FTP_Project/FTPBoss/FTPBoss/bin/Debug/FTPBoss.vshost.exe”进行写入:该进程无法访问该文件,因为它正被另一个进程使用。
-
@WalterSchultz:您应该将
bin目录以及许多其他文件添加到.gitignore。请参阅 GitHub 的忽略模板。