它是共享的GIT存储库。许多人在使用Same git Repository。
这就是为什么我先尝试git pull
进行其他更改add, commit & push
。
我在本地
尝试了以下命令$ git pull
error: Your local changes to the following files would be overwritten by merge:
File Name
Please commit your changes or stash them before you can merge.
Aborting
提交
$ git commit
no changes added to commit
推送
$ git push
To ssh://git@ab.com:2222/diffusion/SMM/abc.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://git@ab.com:2222/diffusion/SMM/abc.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
如何解决这个问题?
答案 0 :(得分:1)
我最近遇到了同样的问题。您可能忽略了此文件(.gitignore
或.git/info/exclude
),或者您认为该文件未更改(git update-index --assume-unchanged
)。
您可以使用git check-ignore -v "File Name"
检查文件是否被忽略。
如果ls "File Name
没有返回错误,那么文件就在那里但是假设没有被git改变。您可以使用git update-index --no-assume-unchanged
假设它已被更改。
答案 1 :(得分:1)
所以你的问题是工作目录中有未跟踪的文件,你也试图提取。
因此文件Some File
位于您的工作目录中,但有人将具有相同名称的文件推送到服务器。当您拉动时,它将使用远程存储库中的版本覆盖您的本地文件:Your local changes to the following files would be overwritten by merge
。
要解决此问题,您可以做两件事:
git add
文件,git commit
和git pull
将您的本地更改与上游合并另外,请阅读staging area。在提交之前,您需要将文件添加到临时区域。这就是为什么git commit
告诉你没有任何进行提交的原因。 git commit
只会将您放入暂存区域的内容提交。
答案 2 :(得分:0)
你应该花点时间了解git是如何工作的(良好的资源[1])。特别是,能够看到整个git历史记录是至关重要的,请使用以下命令或git UI(gitk
,git-gui
):
git log --oneline --graph --all --decorate
简而言之,可能:git pull --rebase
对您有效(如果您没有相互矛盾的更改)。