Сценарий 1: Это неотслеживаемый файлВы можете просто pull
.Ни один из ваших неотслеживаемых файлов не будет заменен
Git - система контроля версий.Он отслеживает файлы, которые вы просили его отслеживать.Поэтому, если вы не установили файл для отслеживания git, он не будет заменен, даже если вы git pull
с удаленного компьютера.
Вот сценарий демонстрационного bash, который фактически воссоздает ваш сценарий.
#!/bin/bash
#from your home (~/) directory
mkdir temp && cd temp
#Init a git bare repo (this is your remote)
git init --bare remote.git
#create local working tree 1 (this is user 1)
mkdir local_1 && cd local_1
git init
git remote add origin ~/temp/remote.git
touch file1
git add file1
git commit -m "first commit"
git push --set-upstream origin master
cd ..
# create local working tree 2 (this is user 2)
git clone remote.git
mv remote local_2 && cd local_2
touch file2
#make a new commit in local_1 and push it
cd ../local_1
touch file3
git add file3
git commit -m "second commit"
git push
#come back to local_2
cd ../local_2
#Pull and update your branch
git pull
#let's see if you still have file2 in your working tree.
ls file2
#yes you do!
После выполнения этого вы можете обнаружить, что file2
все еще существует в вашем каталоге local_2
.
Сценарий 2 : Это отслеживаемый файл.Вытягивание приведет к конфликту, если файлы изменились.Так что вам просто нужно сделать работу, чтобы объединить их.