2009-10-16 2 views
0

Я новичок в git, в основном следуя инструкциям отсюда http://genaud.net/2008/08/clearcase-globally-git-locally/, чтобы попытаться зеркально отобразить снимок ящика.git push создает «отменить» на дистанционном этапе?

Я создаю репозиторий git в каталоге моментальных снимков.

Затем я создаю клон этого репозитория для создания моего рабочего репозитория.

UPDATE: вот что я сделал

cd d:/views/contribsnap #(this is the snapshot from clearcase) 
git init 
git add . 
git commit 
#at this point I have a repository stuffed with my clearcase snapshot 
#then 
git clone -o contribsnap . /d/views/csclone 
# now I have my working repo 
cd /d/views/csclone 
edit testfile.txt 
git add testfile.txt 
git commit -m "made some changes" 
#from git gui hit 'push' button which puts my changes into the contribsnap repo 
#BUT it also stages a new file in contribsnap which if I commit it, it undoes the changes I pushed. 

END UPDATE

Теперь проблема, я не понимаю, что происходит на «толчок» от моего рабочего хранилища обратно в начало координат.

Когда я нажимаю кнопку «push» в git gui из моего рабочего репозитория, он, кажется, помещает правильную вещь в исходный репозиторий, но затем он ставит файл, который, когда совершает, отменяет нажатие. В первый раз, когда я это пробовал, я действительно запутался, потому что я сделал толчок от рабочего репо, тогда фиксация на происхождении и HEAD^1, похоже, имеет изменения, но последнее не делает.

Я предполагаю, что вы не должны это совершать, и оно помещено туда, чтобы сопровождающий происхождения мог легко отменить нажатие?

Что такое рабочий процесс, если я являюсь сторонником обоих. Должен ли я скорее «вытащить» рабочее репо в происхождение? Или я удаляю файл отмены, а затем ... ??? Я не знаю, что делать с этим файлом «отменить».

Спасибо. Джим

ответ

1

Я немного запутался, что именно вы делаете, но этот совет может помочь: в общем, это хорошая идея, чтобы отделить рабочие репозитории от вашего главного хранилища. Поэтому создайте отдельный (скажем) каталог gitrepos, а затем каждую локальную копию нужно нажать и оттуда оттуда. Не редактируйте файлы непосредственно в этой основной копии. Это может помочь держать вещи простыми и чистыми и означает, что вы случайно не повредите свою основную копию.

Вы также можете использовать git init --bare в своем каталоге gitrepos, и все файлы будут работать прямо там, а не в каталоге .git.

0

Я думаю, что это http://git.or.cz/gitwiki/GitFaq#Whywon.27tIseechangesintheremoterepoafter.22gitpush.22.3F в основном объясняет, что происходит, хотя это не совсем объясняет механизм.

Я обнаружил, что вытаскивание делает то, что я ожидаю.

Также этот поток stackoverflow.com/questions/883878/update-website-with-a-single-command-git-push-instead-of-ftp-drag-and-dropping объясняет, что вам нужно сделать «git» checkout -f 'на пульте дистанционного управления при использовании push ... Thanks

Смежные вопросы