git
толкает коммиты по следующим веткам, а не по отдельным файлам.В вашем случае у вас есть два коммита: коммит для test_repo1.txt
и коммит для test_repo2.txt
, но каждый из них находится в одной и той же ветке.
Когда вы добавляете test_repo1.txt
git push
к repo1
* ветка имеет только ваш коммит для репо.Однако после того, как вы выполните git add test_repo2.txt
и подтвердите его, в той же ветке теперь есть обе фиксации, поэтому оба изменения применяются к repo2
при нажатии.
Чтобы выполнить то, что вы хотитедля этого вам нужно иметь две ветви в локальной рабочей копии, назовем их branch_repo1
и branch_repo2
.Вы будете git push
каждую ветку к своему репо.Ваша процедура такова:
git clone repo1
, как и раньше, и git checkout master
(или любая другая ветка, с которой вы хотите начать) git checkout -b branch_repo1
, чтобы создать и проверить веткудля ваших repo1
изменений. git add test_repo1.txt
и git commit
и git push repo1 master
(замена master
любой ветвью на repo1
, на которую вы хотите нажать) git checkout master
снова, чтобы вернуться в исходную ветку (которая не будет иметь фиксацию для test_repo1.txt
) - , теперь повторите:
git checkout -b branch_repo2
, чтобы создать ветку для ваших repo2
изменений. git add test_repo2.txt
и git commit
и git push repo2 master
- Готово.
repo1 master
будет иметь коммит, который вы положили в ветку branch_repo1
, а repo2 master
будет иметь коммит, который вы положили в ветку branch_repo2
.
Примечание , чтов вашем git push
вы должны указать не только репо, но и какую ветку , на которую вы хотите перейти.Предполагая, что вы работаете с master
в обоих случаях, вам нужно:
git push repo1 master # while you have the branch_repo1 branch checked out
и
git push repo2 master # while you have the branch_repo2 branch checked out
Это выполнит то, что вы хотите сделать.
(последнее замечание: я назвал ветви с префиксом branch_
вместо просто repo1
и repo2
, чтобы избежать неоднозначности имени репо / ветви. Вы можете назвать ветви как хотите).