В моем первом коммите я не могу вытащить sh изменения, так как у меня уже есть .gitignore и README.md в моем github, отличном от локального - PullRequest
1 голос
/ 15 апреля 2020

Я очень плохо знаком с git и изучаю его самостоятельно.

Я создал репозиторий в github, в котором есть эти два файла .gitignore и README.md. только .

Теперь у меня есть проект angular в папке в моем локальном каталоге.

Я хочу поместить sh мой проект во вновь созданный репозиторий 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.

Я понял, что файлы .gitignore и README.md присутствуют в моем github Репо отличается от того, что у меня есть в локальном, поэтому мне нужно сначала вытащить изменения, а затем объединить их, а затем я могу сделать это sh. Но я попытался сделать это - я выполнил следующие команды по порядку, начав с самого начала, так как я не знаю, как поступить после получения ошибки, поэтому я подумал, что я потяну изменения до того, как их нажать.

Затем я получил следующее сообщение. Я не знаю, как действовать после этого -

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. Пожалуйста, помогите мне.

Ответы [ 3 ]

1 голос
/ 15 апреля 2020

Если вы уверены, что не хотите хранить файлы в своем удаленном репозитории, вы можете использовать git push -f

-f означает принудительное выполнение, и оно перезапишет ваш удаленный репозиторий (поэтому используйте его осторожно )

Второй вариант - отменить ваш коммит с помощью git reset HEAD^ (он сбрасывает ваш коммит, но не измененные вами файлы, как если бы вы были до git commit), затем sh ваши изменения с git stash. Теперь вы можете git pull и затем unsta sh с помощью git stash pop, обработать конфликты, затем зафиксировать и pu sh.

Наконец, самым простым способом было бы не создавать эти файлы на Github и не делать именно то, что вы сделали, тогда у вас не будет никакого конфликта.

1 голос
/ 15 апреля 2020

Одним из вариантов может быть клонирование хранилища после sh в новой папке, перенос изменений, которые вам необходимы в двух файлах, а затем фиксация и получение sh результата.

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

Чтобы заставить работать подход * sta sh, вам нужно убедиться, что неотслеживаемые файлы были сохранены перед извлечением (возможно, принудительно добавив их с помощью git add -f), и не забудьте применить / выдать sta sh впоследствии к ' unsta sh 'те изменения.

0 голосов
/ 15 апреля 2020

Как я решил это ----

После получения этой ошибки при извлечении из источника (т. Е. URL-адреса моего репозитория github)

Я пошел в свою локальную папку, отредактированную вручную и сохранил только локальные изменения - т.е.

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

, затем я выполнил следующие команды -

  1. git add.
  2. git commit -m «Разрешенные конфликты слияния»
  3. git pu sh origin master

Работало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...