在我的第一次提交中,我无法推送更改,因为我的 github 中已经有 .gitignore 和 README.md,与本地不同

In my first commit I am unable to push the changes as i already have .gitignore and README.md in my github,diff from local

我是git的新手,正在自学。

我在 github 中创建了一个存储库,其中包含这两个文件。gitignore 和 README.md。 .

现在我的本地文件夹中有一个 angular 项目。

我想将我的项目推送到新创建的 github 存储库, 所以我按顺序使用了以下命令--

在此之后我收到以下错误---

To https://github.com/Arpan619Banerjee/test-git-commands.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/Arpan619Banerjee/test-git-commands.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我知道我的 github 存储库中存在的 .gitignore 和 README.md 文件与我在本地的文件不同,所以我必须拉出首先更改然后合并它然后我可以推送它。 但我试着这样做—— 我按顺序执行了以下命令,从一开始就开始了,因为我不知道在收到错误后如何继续,所以我想我会在推送之前拉出并合并更改。

然后我收到以下消息。我不知道在这之后如何进行-

error: The following untracked working tree files would be overwritten by merge:
        .gitignore
        README.md
Please move or remove them before you merge.
Aborting

我在 Google 中搜索得到这个答案--

The problem is that you are not tracking the files 
locally but identical files are tracked remotely so
 in order to "pull" your system would be forced to 
overwrite the local files which are not version controlled.

Try running

git add * 
git stash
git pull

但是这里本地文件被覆盖了,我不想这样。我希望推送我的本地更改。如何在这里解决合并冲突以保留我的本地更改。

通过 Vs 代码 git GUI,我能够合并我的本地更改,但我想通过 cmd 来完成。 请帮助我。

一个选择是将存储库重新克隆到一个新文件夹中,在两个文件中执行您需要的更改,然后提交并推送结果。

git clone https://github.com/Arpan619Banerjee/test-git-commands.git FOLDER
# Make appropriate changes
git add FILES
git commit -m "Commit message"
git push

要使隐藏方法起作用,您需要确保未跟踪的文件在拉取之前被隐藏(可能会强制使用 git add -f 添加它们),并记得在之后 apply/pop 隐藏'unstash' 这些变化。

如果您确定不想将文件保留在远程存储库中,您可以使用 git push -f

-f 表示强制,它将覆盖您的远程存储库(因此请谨慎使用)

选项二是使用 git reset HEAD^ 取消您的提交(它会重置您的提交但不会重置您修改的文件,就像您在 git commit 之前一样),然后使用 [= 存储您的更改14=]。您现在可以 git pull 然后使用 git stash pop 取消存储,处理冲突然后提交和推送。

最后,最简单的方法是不在 Github 上创建这些文件并完全按照您所做的去做,这样就不会有任何冲突。

我是怎么解决的----

从原点(即我的 github 存储库 url)拉取该错误后

我进入手动编辑的本地文件夹并仅保留本地更改-- 即

between <<<<<<<<<<<<<HEAD and =========

然后我运行下面的命令--

  1. git 添加 .
  2. git commit -m "Resolved merge conflicts"
  3. git push origin master

成功了!