git push在远程阶段创建“撤消”?

时间:2009-10-16 19:26:31

标签: git

我是新来的git,基本上按照http://genaud.net/2008/08/clearcase-globally-git-locally/的指示来尝试镜像一个clearcase快照。

我在快照目录上创建了git存储库。

然后我创建该存储库的克隆来创建我的工作存储库。

更新: 这就是我做的事情

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

现在,问题是我不明白从我的工作存储库返回原点的'推送'会发生什么。

当我从我的工作存储库中点击git gui中的“push”按钮时,它似乎将正确的东西放入原始存储库,但随后它会暂存一个文件,该文件在提交时撤消了推送。第一次尝试它时真的很混乱,因为我从工作回购中做了推动,然后对原点进行了提交,HEAD ^ 1似乎有了更改,但最新的没有。

我猜你不应该提交它,并且它放在那里,以便原点的维护者可以轻松撤消推送?

如果我是两者的维护者,那么工作流程是什么。我是否应该将工作回购“拉”到原产地?或者我取消暂停撤消文件然后...... ???我不知道如何处理'撤消'文件。

感谢。 吉姆

2 个答案:

答案 0 :(得分:1)

我对你正在做的事情有点困惑,但这个建议可能有所帮助:一般来说,将工作存储库与主存储库分开是个好主意。因此,创建一个单独的(例如)gitrepos目录,然后每个本地副本应该从那里推送。不要直接在该主副本中编辑文件。这可以帮助保持简单和干净,并且意味着您不会意外损坏主副本。

您还可以在git init --bare目录中使用gitrepos,所有文件都将存在,而不是.git目录中。

答案 1 :(得分: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'在遥控器上使用推... 感谢

相关问题